]> git.donarmstrong.com Git - debbugs.git/blobdiff - scripts/process
Only remove list headers if the message appears to have traversed a mailing list...
[debbugs.git] / scripts / process
index 75c487a1a05a534c5aa9d046e28709d4ab85b1e8..c663dfd69782a59262095b36424ff5cd07cf6901 100755 (executable)
@@ -275,8 +275,18 @@ if (!defined($header{'subject'}))
 my $ref=-1;
 # remove Re: from the subject line
 $subject =~ s/^Re:\s*//i;
-# remove remaining mailing list name markers from the subject line
-$subject =~ s/^\[.*\]\s*//i;
+# remove remaining mailing list name markers from the subject line if
+# this appears to be a message that has traversed a mailing list
+if (exists $header{'list-id'} or exists $header{'list-subscribe'} or
+    (exists $header{'precedence'} and defined $header{'precedence'} and
+     $header{'precedence'} eq 'bulk') or
+    exists $header{'mailing-list'} or exists $header{'list-processor-version'}
+   ){
+    # if a mailing list didn't match any of the above, it's probably
+    # so horribly configured that we wouldn't be able to figure it out
+    # anyway.
+    $subject =~ s/^\[.*\]\s*//i;
+}
 $_= $subject."\n";
 if (not defined $tryref and m/^Bug ?\#(\d+)\D/i) {
     $tryref = $1 if $1 > 0;
@@ -450,15 +460,13 @@ if ($codeletter eq 'D' || $codeletter eq 'F')
        # Add bug mailing list to $generalbcc as appropriate
        # This array is used to specify bcc in the cases where we're using create_mime_message.
        my @generalbcc = @generalcc;
-       my $generalbcc = $generalcc;
        if (defined $config{subscription_domain} and length $config{subscription_domain}) {
-           my @generalbcc = (@generalbcc, @addsrcaddrs);
-           my $generalbcc = join(', ', $generalbcc, @addsrcaddrs);
+           @generalbcc = (@generalbcc, @addsrcaddrs);
        }
        if (defined $config{bug_subscription_domain} and length $config{bug_subscription_domain}) {
-           my @generalbcc = (@generalbcc, "bugs=$ref\@$config{bug_subscription_domain}");
-           my $generalbcc = join(', ', $generalbcc, "bugs=$ref\@$config{bug_subscription_domain}");
+           @generalbcc = (@generalbcc, "bugs=$ref\@$config{bug_subscription_domain}");
        }
+       my $generalbcc = join(', ', @generalbcc);
        $generalbcc =~ s/\s+\n\s+/ /g;
        $generalbcc =~ s/^\s+/ /; $generalbcc =~ s/\s+$//;
        if (length $generalbcc) {$generalbcc = "Bcc: $generalbcc\n"};