X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=scripts%2Fprocess;h=8dfd5fb04f9bb673dc2759f6d147efe54d2c511c;hb=2ca3d4b399934b4ee936f9a3f511b22fbcd48281;hp=cab73b3d27fdd79ec35b86542dde161154ecdce6;hpb=cb2d3bceada187525f182c9ea7c7d4f5e93fefce;p=debbugs.git diff --git a/scripts/process b/scripts/process index cab73b3..8dfd5fb 100755 --- a/scripts/process +++ b/scripts/process @@ -28,6 +28,7 @@ use Debbugs::Text qw(:templates); use Debbugs::Config qw(:globals :config); use Debbugs::Control qw(append_action_to_log); +use Encode qw(encode_utf8); chdir( "$gSpoolDir" ) || die "chdir spool: $!\n"; @@ -49,16 +50,24 @@ if (!rename("incoming/G$nn","incoming/P$nn")) die "renaming to lock: $!"; } -my $baddress= 'submit' if $codeletter eq 'B'; -$baddress= 'maintonly' if $codeletter eq 'M'; -$baddress= 'quiet' if $codeletter eq 'Q'; -$baddress= 'forwarded' if $codeletter eq 'F'; -$baddress= 'done' if $codeletter eq 'D'; -$baddress= 'submitter' if $codeletter eq 'U'; -bug_list_forward($nn) if $codeletter eq 'L'; -$baddress || die "bad codeletter $codeletter"; +my %baddress = (B => 'submit', + M => 'maintonly', + Q => 'quiet', + F => 'forwarded', + D => 'done', + S => 'submitter', + L => 'list', + ); +if (not exists $baddress{$codeletter}) { + die "bad codeletter $codeletter"; +} +my $baddress = $baddress{$codeletter}; +if ($baddress eq 'list') { + bug_list_forward($nn) if $codeletter eq 'L'; +} + my $baddressroot= $baddress; -$baddress= "$tryref-$baddress" if $tryref>=0; +$baddress= "$tryref-$baddress" if $tryref >= 0; open(M,"incoming/P$nn"); my @log=; @@ -94,7 +103,7 @@ our $newref = 0; our $brokenness = ''; -my $parser = new MIME::Parser; +my $parser = MIME::Parser->new(); mkdir "$gSpoolDir/mime.tmp", 0777; $parser->output_under("$gSpoolDir/mime.tmp"); my $entity = eval { $parser->parse_data(join('',@log)) }; @@ -592,6 +601,7 @@ if ($ref<0) { # new bug report $data->{forwarded} = $pheader{forwarded}; } $ref = new_bug(); + $newref = $ref; my $hash = get_hashname($ref); $data->{originator} = $replyto; $data->{date} = $intdate; @@ -724,7 +734,7 @@ my $common_headers=''; } if ($codeletter eq 'U') { # sent to -submitter &htmllog("Message", "sent on", $data->{originator}, "$gBug#$ref."); - &sendmessage(<{originator},@resentccs],[@bccs]); + my $enc_msg=<{originator} @@ -734,8 +744,11 @@ Resent-Sender: $gMaintainerEmail X-$gProject-PR-Message: report $ref X-$gProject-PR-Package: $data->{package} X-$gProject-PR-Keywords: $data->{keywords} -${source_pr_header}$fwd +${source_pr_header} END + chomp $enc_msg; + $enc_msg = encode_utf8($enc_msg).$fwd."\n"; + &sendmessage($enc_msg,[$data->{originator},@resentccs],[@bccs]); } elsif ($codeletter eq 'B') { # Sent to submit my $report_followup = $newref ? 'report' : 'followup'; &htmllog($newref ? "Report" : "Information", "forwarded", @@ -743,7 +756,7 @@ END "$gBug#$ref". (length($data->{package})? "; Package ".html_escape($data->{package})."" : ''). "."); - &sendmessage(<{package} X-$gProject-PR-Keywords: $data->{keywords} -${source_pr_header}$fwd +${source_pr_header} END + chomp $enc_msg; + $enc_msg = encode_utf8($enc_msg).$fwd."\n"; + &sendmessage($enc_msg,["$gSubmitList\@$gListDomain",@resentccs],[@bccs]); } elsif (@resentccs or @bccs) { # Quiet or Maintainer # D and F done far earlier; B just done - so this must be M or Q # We preserve whichever it was in the Reply-To (possibly adding @@ -774,7 +790,7 @@ END (length($data->{package}) ? "; Package ".html_escape($data->{package})."" : ''). "."); } - &sendmessage(<{package} X-$gProject-PR-Keywords: $data->{keywords} -${source_pr_header}$fwd +${source_pr_header} END + chomp $enc_msg; + $enc_msg = encode_utf8($enc_msg).$fwd."\n"; + &sendmessage($enc_msg,[@resentccs],[@bccs]); } my $htmlbreak= length($brokenness) ? "

\n".html_escape($brokenness)."\n

\n" : '';