X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=cgi%2Fbugreport.cgi;h=70f42292644f437e1284a6ba0aee2eeb5aabb635;hb=37fa4f5e9b7218b8a909f2c0502a12c6b7f5303e;hp=de4ec76371633cfe8d9760a14a7f6e2142df6250;hpb=4ac94f292bfbf36863795ed9d695be7ad2b5b344;p=debbugs.git diff --git a/cgi/bugreport.cgi b/cgi/bugreport.cgi index de4ec76..70f4229 100755 --- a/cgi/bugreport.cgi +++ b/cgi/bugreport.cgi @@ -8,8 +8,6 @@ BEGIN{ delete @ENV{qw(IFS CDPATH ENV BASH_ENV)}; } -# STDOUT should be using the utf8 io layer -binmode(STDOUT,':utf8'); use POSIX qw(strftime); use MIME::Parser; @@ -38,6 +36,8 @@ use List::Util qw(max); use CGI::Simple; my $q = new CGI::Simple; +# STDOUT should be using the utf8 io layer +binmode(STDOUT,':raw:encoding(UTF-8)'); my %param = cgi_parameters(query => $q, single => [qw(bug msg att boring terse), @@ -224,11 +224,11 @@ END # we want to include control messages anyway my $record_wanted_anyway = 0; my ($msg_id) = $record->{text} =~ /^Message-Id:\s+<(.+)>/im; - next if exists $seen_message_ids{$msg_id}; - next if $msg_id =~/handler\..+\.ack(?:info|done)?\@/; + next if defined $msg_id and exists $seen_message_ids{$msg_id}; + next if defined $msg_id and $msg_id =~/handler\..+\.ack(?:info|done)?\@/; $record_wanted_anyway = 1 if $record->{text} =~ /^Received: \(at control\)/; next if not $boring and not $record->{type} eq $wanted_type and not $record_wanted_anyway and @records > 1; - $seen_message_ids{$msg_id} = 1; + $seen_message_ids{$msg_id} = 1 if defined $msg_id; my @lines = split( "\n", $record->{text}, -1 ); if ( $lines[ 1 ] =~ m/^From / ) { my $tmp = $lines[ 0 ];