]> git.donarmstrong.com Git - debbugs.git/blobdiff - scripts/service
default to + for affects if there are packages, = otherwise
[debbugs.git] / scripts / service
index 98a9e11d62493365185814d8ef317264cc8aa049..29d14af789619d8a4dace8cdfad511bb8a2af909 100755 (executable)
@@ -962,8 +962,19 @@ END
     } elsif (m/^affects?\s+\#?(-?\d+)(?:\s+((?:[=+-])?)\s*(\S.*)?)?\s*$/i) {
        $ok++;
         $ref = $1;
-       my $add_remove = $2 || '';
-       my $packages = $3 || '';
+       my $add_remove = $2;
+       my $packages = $3;
+       # if there isn't a package given, assume that we should unset
+       # affects; otherwise default to adding
+       if (not defined $packages or
+           not length $packages) {
+           $packages = '';
+           $add_remove ||= '=';
+       }
+       elsif (not defined $add_remove or
+              not length $add_remove) {
+           $add_remove = '+';
+       }
        $ref = $clonebugs{$ref} if exists $clonebugs{$ref};
        eval {
             affects(@common_control_options,
@@ -1114,7 +1125,10 @@ my $reply =
                         Precedence    => 'bulk',
                         keys %affected_packages ?("X-${gProject}-PR-Package" => join(' ',keys %affected_packages)):(),
                         keys %affected_packages ?("X-${gProject}-PR-Source" =>
-                                                  join(' ',grep {defined $_} map {binary_to_source(binary => $_)} keys %affected_packages)):(),
+                                                  join(' ',
+                                                       map {defined $_ ?(ref($_)?@{$_}:$_):()}
+                                                       binary_to_source(binary => [keys %affected_packages],
+                                                                        source_only => 1))):(),
                         "X-$gProject-PR-Message" => 'transcript',
                         @common_headers,
                        ],