X-Git-Url: https://git.donarmstrong.com/?p=debbugs.git;a=blobdiff_plain;f=scripts%2Fprocess;h=089fa46888be91a6234ddaa0cbb80f8d18f5498d;hp=73eebb0c19bf81a441d9876d848dfd1c06be4495;hb=611a4b401fce2979a485476787afb136acf86af9;hpb=23d26116c0fcfeeaf60a7ab724f18fe86554d746 diff --git a/scripts/process b/scripts/process index 73eebb0..089fa46 100755 --- a/scripts/process +++ b/scripts/process @@ -224,6 +224,7 @@ for my $phline (@bodylines) # Remove BOM markers from UTF-8 strings # Fixes #488554 $phline =~ s/\xef\xbb\xbf//g; + $phline =~ s/\N{U+FEFF}//g; last if $phline !~ m/^([\w-]+):\s*(\S.*)/; my ($fn, $fv) = ($1, $2); $fv =~ s/\s*$//; @@ -247,7 +248,7 @@ for my $key (grep /X-Debbugs-.*/i, keys %pheader) { # set $i to beginning of encoded body data, so we can dump it out # verbatim later my $i = 0; -++$i while $msg[$i] =~ /./; +++$i while $i <= $#msg and $msg[$i] =~ /./; $fwd .= join("\n",@msg[$i..$#msg]); binmode($debugfh,':raw'); @@ -540,10 +541,10 @@ if ($codeletter eq 'D' || $codeletter eq 'F') Subject => "$gBug#$ref closed by $markedby ($header{'subject'})", "Message-ID" => "", (defined $data->{msgid})?("In-Reply-To" => $data->{msgid}):(), - References => join(' ',grep {defined $_} ($header{'message-id'},$data->{msgid})), + References => join(' ',grep {defined $_} ($header{'message-id'},$data->{msgid},'')), "X-$gProject-PR-Message" => "they-closed $ref", - "X-$gProject-PR-Package" => "$data->{package}", - "X-$gProject-PR-Keywords" => "$data->{keywords}", + (defined $data->{package})?("X-$gProject-PR-Package" => $data->{package}):(), + (defined $data->{keywords})?("X-$gProject-PR-Keywords" => $data->{keywords}):(), # Only have a X-$gProject-PR-Source when we know the source package (defined($source_package) and length($source_package))?("X-$gProject-PR-Source" => $source_package):(), "Reply-To" => "$ref\@$gEmailDomain", @@ -591,7 +592,8 @@ if ($ref<0) { # new bug report if (defined $pheader{source}) { # source packages are identified by the src: prefix - $data->{package} = 'src:'.$pheader{source}; + $data->{package} = $pheader{source}; + $data->{package} =~ s/(^|,\s*)/${1}src:/g; } elsif (defined $pheader{package}) { $data->{package} = $pheader{package}; if ($data->{package} =~ /^src:(.+)/) { @@ -1014,7 +1016,7 @@ if (@control_bits) { request_subject => $header{subject}, request_nn => $nn, request_replyto => $replyto, - message => $msg, + message => [$msg], affected_bugs => \%bug_affected, affected_packages => \%affected_packages, recipients => \%recipients, @@ -1069,7 +1071,7 @@ if (@control_bits) { address_only => 1, cc => 1, ); - my $error_text = $errors > 0 ? " (with $errors errors)":''; + my $error_text = $errors > 0 ? " (with $errors error" . ($errors > 1 ? "s" : "") . ")" : ""; my $reply = create_mime_message(['X-Loop' => $gMaintainerEmail, From => "$gMaintainerEmail ($gProject $gBug Tracking System)", @@ -1207,7 +1209,7 @@ sub sendmessage { write_log_records(logfh => $logfh, records => {text => stripbccs($msg), type => 'recips', - recips => [@{$recips}], + recips => [map {encode_utf8($_)} @{$recips}], }, ); if (ref($bcc)) { @@ -1260,7 +1262,7 @@ sub fill_template{ }; my $hole_var = {'&bugurl' => sub{"$_[0]: ". - 'http://'.$config{cgi_domain}.'/'. + $config{cgi_domain}.'/'. Debbugs::CGI::bug_links(bug=>$_[0], links_only => 1, );