]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Bug 592480: Only one person is added to CC list when multiple are specified
authorFrédéric Buclin <LpSolit@gmail.com>
Wed, 1 Sep 2010 21:12:28 +0000 (23:12 +0200)
committerFrédéric Buclin <LpSolit@gmail.com>
Wed, 1 Sep 2010 21:12:28 +0000 (23:12 +0200)
r=dkl a=LpSolit

process_bug.cgi

index 3e7f66c970a2748593d9387b31929d7333e7b475..4f89215596d25af3bd633fc2baaa4b9b13a32324 100755 (executable)
@@ -287,37 +287,33 @@ foreach my $dep_field (qw(dependson blocked)) {
     }
 }
 # Formulate the CC data into two arrays of users involved in this CC change.
-my (@cc_add, @cc_remove);
 if (defined $cgi->param('newcc')
     or defined $cgi->param('addselfcc')
     or defined $cgi->param('removecc')
     or defined $cgi->param('masscc')) 
 {
-
+    my (@cc_add, @cc_remove);
     # If masscc is defined, then we came from buglist and need to either add or
     # remove cc's... otherwise, we came from show_bug and may need to do both.
-    my ($cc_add, $cc_remove) = "";
     if (defined $cgi->param('masscc')) {
         if ($cgi->param('ccaction') eq 'add') {
-            $cc_add = $cgi->param('masscc');
+            @cc_add = $cgi->param('masscc');
         } elsif ($cgi->param('ccaction') eq 'remove') {
-            $cc_remove = $cgi->param('masscc');
+            @cc_remove = $cgi->param('masscc');
         }
     } else {
-        $cc_add = $cgi->param('newcc');
-        # We came from bug_form which uses a select box to determine what cc's
+        @cc_add = $cgi->param('newcc');
+        push(@cc_add, Bugzilla->user) if $cgi->param('addselfcc');
+
+        # We came from show_bug which uses a select box to determine what cc's
         # need to be removed...
         if ($cgi->param('removecc') && $cgi->param('cc')) {
-            $cc_remove = join(",", $cgi->param('cc'));
+            @cc_remove = $cgi->param('cc');
         }
     }
 
-    push(@cc_add, split(/[\s,]+/, $cc_add)) if $cc_add;
-    push(@cc_add, Bugzilla->user) if $cgi->param('addselfcc');
-
-    push(@cc_remove, split(/[\s,]+/, $cc_remove)) if $cc_remove;
+    $set_all_fields{cc} = { add => \@cc_add, remove => \@cc_remove };
 }
-$set_all_fields{cc} = { add => \@cc_add, remove => \@cc_remove };
 
 # Fields that can only be set on one bug at a time.
 if (defined $cgi->param('id')) {