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,@addsrcaddrs,"bugs=$ref\@$gListDomain");
- my $generalbcc = join(', ', $generalcc, @addsrcaddrs,"bugs=$ref\@$gListDomain");
+ my @generalbcc = @generalcc;
+ if (defined $config{subscription_domain} and length $config{subscription_domain}) {
+ @generalbcc = (@generalbcc, @addsrcaddrs);
+ }
+ if (defined $config{bug_subscription_domain} and length $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"};
}
# Send mail to the per bug list subscription too
-push @bccs, "bugs=$ref\@$gListDomain";
+if (defined $config{bug_subscription_domain} and length $config{bug_subscription_domain}) {
+ push @bccs, "bugs=$ref\@$config{bug_subscription_domain}";
+}
if (defined $pheader{source}) {
# Prefix source versions with the name of the source package. They
}
}
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";
$p =~ /((?:src:)?[a-z0-9.+-]+)/;
$p = $1;
next unless defined $p;
- if (defined $gSubscriptionDomain) {
+ if (defined $config{subscription_domain} and length $config{subscription_domain}) {
my @source = binary_to_source(binary => $p,
source_only => 1,
);
if (@source) {
push @addsrcaddrs,
- map {"$_\@$gSubscriptionDomain"} @source;
+ map {"$_\@$config{subscription_domain}"} @source;
} else {
- push @addsrcaddrs, "$p\@$gSubscriptionDomain";
+ push @addsrcaddrs, "$p\@$config{subscription_domain}";
}
}
# this is utter hackery until we switch to Debbugs::Recipients