]> git.donarmstrong.com Git - debbugs.git/blobdiff - Debbugs/Control/Service.pm
summary and outlook actually accept any text
[debbugs.git] / Debbugs / Control / Service.pm
index 7b4b44dbeb1897e8259ac01d792741c887528ba0..7dcfdf4c4b6cef00924ff5141883ce47e625f7b4 100644 (file)
@@ -148,7 +148,8 @@ my %control_grammar =
      package => qr/(?i)^package\:?\s+(\S.*\S)?\s*$/,
      limit => qr/(?i)^limit\:?\s+(\S.*\S)\s*$/,
      affects => qr/(?i)^affects?\s+\#?(-?\d+)(?:\s+((?:[=+-])?)\s*(\S.*)?)?\s*$/,
-     summary => qr/(?i)^summary\s+\#?(-?\d+)\s*(\d+|)\s*$/,
+     summary => qr/(?i)^summary\s+\#?(-?\d+)\s*(.*)\s*$/,
+     outlook => qr/(?i)^outlook\s+\#?(-?\d+)\s*(.*)\s*$/,
      owner => qr/(?i)^owner\s+\#?(-?\d+)\s+((?:\S.*\S)|\!)\s*$/,
      noowner => qr/(?i)^noowner\s+\#?(-?\d+)\s*$/,
      unarchive => qr/(?i)^unarchive\s+#?(\d+)$/,
@@ -188,6 +189,8 @@ sub control_line {
                                     },
                               limit => {type => HASHREF,
                                        },
+                              replyto => {type => SCALAR,
+                                         },
                              },
                     );
     my $line = $param{line};
@@ -488,7 +491,7 @@ sub control_line {
            $errors++;
            print {$transcript} "Failed to alter tags of $config{bug} $ref: ".cleanup_eval_fail($@,$debug)."\n";
        }
-    } elsif (m/^(un)?block\s+\#?(-?\d+)\s+(?:by|with)\s+(\S.*)?$/i) {
+    } elsif ($ctl eq 'block') {
        my $add_remove = defined $matches[0] && $matches[0] eq 'un';
        $ref = $matches[1];
        $ref = exists $param{clonebugs}{$ref} ? $param{clonebugs}{$ref} : $ref;
@@ -655,6 +658,19 @@ sub control_line {
            print {$transcript} "Failed to give $ref a summary: ".cleanup_eval_fail($@,$debug)."\n";
        }
 
+    } elsif ($ctl eq 'outlook') {
+       my $outlook_msg = length($matches[1])?$matches[1]:undef;
+       eval {
+           outlook(@{$param{common_control_options}},
+                   bug          => $ref,
+                   outlook      => $outlook_msg,
+                  );
+       };
+       if ($@) {
+           $errors++;
+           print {$transcript} "Failed to give $ref a outlook: ".cleanup_eval_fail($@,$debug)."\n";
+       }
+
     } elsif ($ctl eq 'owner') {
        my $newowner = $matches[1];
        if ($newowner eq '!') {