]> git.donarmstrong.com Git - debbugs.git/blobdiff - Debbugs/Control.pm
don't alter archived bugs in control
[debbugs.git] / Debbugs / Control.pm
index 136a6dc54462719e67641361dcd961889463f764..c80a3ce0415337328be9dd995d8409069318d88d 100644 (file)
@@ -436,8 +436,8 @@ sub set_blocks {
            print {$transcript} "Was blocked by: $data->{blockedby}\n";
        }
        my @changed;
-       push @changed, 'added blocking bug(s) '.english_join([keys %added_blockers]) if keys %added_blockers;
-       push @changed, 'removed blocking bug(s) '.english_join([keys %removed_blockers]) if keys %removed_blockers;
+       push @changed, 'added blocking bug(s) of '.$data->{bug_num}.': '.english_join([keys %added_blockers]) if keys %added_blockers;
+       push @changed, 'removed blocking bug(s) of '.$data->{bug_num}.': '.english_join([keys %removed_blockers]) if keys %removed_blockers;
        $action = ucfirst(join ('; ',@changed)) if @changed;
        if (not @changed) {
            print {$transcript} "Ignoring request to alter tags of bug #$data->{bug_num} to the same tags previously set\n"
@@ -482,8 +482,9 @@ sub set_blocks {
            for my $data (@blocking_data) {
                my $old_data = dclone($data);
                my %blocks;
-               %blocks = split ' ', $data->{blocks};
-               my @blocks;
+               my @blocks = split ' ', $data->{blocks};
+               @blocks{@blocks} = (1) x @blocks;
+               @blocks = ();
                for my $bug (@bugs) {
                    if ($add_remove eq 'remove') {
                        next unless exists $blocks{$bug};
@@ -1817,7 +1818,7 @@ sub affects {
              }
              if (keys %added_packages) {
                  $action .= "Added indication that $data->{bug_num} affects " .
-                  english_join([%added_packages]);
+                  english_join([keys %added_packages]);
              }
         }
        if (not length $action) {
@@ -2684,6 +2685,13 @@ sub __begin_control {
     if (not @data) {
        die "Unable to read any bugs successfully.";
     }
+    if (not $param{archived}) {
+       for my $data (@data) {
+           if ($data->{archived}) {
+               die "Not altering archived bugs; see unarchive.";
+           }
+       }
+    }
     if (not __check_limit(data => \@data,
                          exists $param{limit}?(limit => $param{limit}):(),
                         )) {