use warnings;
use strict;
-use POSIX qw(strftime);
+use locale;
+use POSIX qw(strftime locale_h);
+setlocale(LC_TIME, "C");
use IO::File;
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;
# 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"};
}
}
else {
+ print {$transcript} "Unknown command or malformed arguments to command.\n\n";
$errors++;
if (++$unknowns >= 5) {
print {$transcript} "Too many unknown commands, stopping here.\n\n";