diff --git a/webtools/bugzilla/process_bug.cgi b/webtools/bugzilla/process_bug.cgi
index 36bfe71bee66..c1c7e63a49ab 100755
--- a/webtools/bugzilla/process_bug.cgi
+++ b/webtools/bugzilla/process_bug.cgi
@@ -678,6 +678,9 @@ The changes made were:
if ($col eq 'assigned_to' || $col eq 'qa_contact') {
$old = DBID_to_name($old) if $old != 0;
$new = DBID_to_name($new) if $new != 0;
+ $origcclist .= ",$old"; # make sure to send mail to people
+ # if they are going to no longer get
+ # updates about this bug.
}
if ($col eq 'product') {
RemoveVotes($id,
@@ -694,7 +697,7 @@ The changes made were:
print "
Changes to bug $id submitted\n";
SendSQL("unlock tables");
- system("./processmail $id $::FORM{'who'}");
+ system("./processmail", "-forcecc", $origcclist, $id, $::FORM{'who'});
print " | Back To BUG# $id |
\n";
foreach my $k (keys(%dependencychanged)) {
diff --git a/webtools/bugzilla/processmail b/webtools/bugzilla/processmail
index eedfb033949d..8e0b7c29fde7 100755
--- a/webtools/bugzilla/processmail
+++ b/webtools/bugzilla/processmail
@@ -36,6 +36,8 @@ $::lockcount = 0;
my $regenerate = 0;
my $nametoexclude = "";
+my @forcecc;
+
sub Lock {
if ($::lockcount <= 0) {
$::lockcount = 0;
@@ -305,6 +307,7 @@ sub ProcessOneBug {
foreach my $v (split(/,/, "$::bug{'cclist'},$::bug{'voterlist'}")) {
push @combinedcc, $v;
}
+ push (@combinedcc, (@forcecc));
my $cclist = fixaddresses("cc", \@combinedcc);
my $logstr = "Bug $i $verb";
if ($tolist ne "" || $cclist ne "") {
@@ -360,11 +363,6 @@ if (open(FID, " 1)) {
- print "Usage error: processmail {bugid} {nametoexclude}\nOr: processmail regenerate\n";
- exit;
-}
-
# To recreate the shadow database, run "processmail regenerate" .
if ($ARGV[0] eq "regenerate") {
$regenerate = 1;
@@ -383,6 +381,18 @@ if ($ARGV[0] eq "regenerate") {
exit;
}
+if ($ARGV[0] eq "-forcecc") {
+ shift(@ARGV);
+ foreach my $i (split(/,/, shift(@ARGV))) {
+ push(@forcecc, trim($i));
+ }
+}
+
+if (($#ARGV < 0) || ($#ARGV > 1)) {
+ print "Usage error: processmail {bugid} {nametoexclude}\nOr: processmail regenerate\n";
+ exit;
+}
+
if ($#ARGV == 1) {
$nametoexclude = lc($ARGV[1]);
}