From: Don Armstrong Date: Tue, 1 Oct 2013 19:40:37 +0000 (-0700) Subject: Merge branch 'master' into don/libravatar X-Git-Tag: release/2.6.0~280 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=d4b9a1bfe03c6ec1451c8f9178bb5a7458e9ae3e;hp=-c;p=debbugs.git Merge branch 'master' into don/libravatar Conflicts: Debbugs/CGI/Bugreport.pm debian/control --- d4b9a1bfe03c6ec1451c8f9178bb5a7458e9ae3e diff --combined Debbugs/CGI/Bugreport.pm index 8d3452d,d9a8744..2e53892 --- a/Debbugs/CGI/Bugreport.pm +++ b/Debbugs/CGI/Bugreport.pm @@@ -148,10 -148,10 +148,10 @@@ sub display_entity if ($_ eq 'From' and $param{avatars}) { my $libravatar_url = __libravatar_url(decode_rfc1522($head_field)); if (defined $libravatar_url and length $libravatar_url) { - push @headers,q(\n); - push @headers,q(\n); ++ push @headers,q(\n); } } - push @headers, qq(

$_: ) . html_escape(decode_rfc1522($head_field))."

\n"; + push @headers, qq(
$_: ) . html_escape(decode_rfc1522($head_field))."
\n"; } print {$output} join(qq(), @headers); } else { @@@ -172,7 -172,6 +172,6 @@@ my $body = $entity->stringify_body; # this attachment has its own content type, so we must not # try to convert it to UTF-8 or do anything funky. - my @layers = PerlIO::get_layers($output); binmode($output,':raw'); print {$output} "Content-Type: $type"; my ($charset) = $head->get('Content-Type:') =~ m/charset\s*=\s*\"?([\w-]+)\"?/i; @@@ -187,10 -186,10 +186,10 @@@ print {$output} "\n"; my $decoder = MIME::Decoder->new($head->mime_encoding); $decoder->decode(IO::Scalar->new(\$body), $output); - if (grep {/utf8/} @layers) { - binmode($output,':utf8'); - } - return; + # we don't reset the layers here, because it makes no + # sense to add anything to the output handle after this + # point. + return(1); } elsif (not exists $param{att}) { my @dlargs = (msg=>$xmessage, att=>$#$attachments); @@@ -206,26 -205,30 +205,30 @@@ } } - return if not $param{outer} and $disposition eq 'attachment' and not exists $param{att}; - return unless ($type =~ m[^text/?] and - $type !~ m[^text/(?:html|enriched)(?:;|$)]) or - $type =~ m[^application/pgp(?:;|$)] or - $entity->parts; + return 0 if not $param{outer} and $disposition eq 'attachment' and not exists $param{att}; + return 0 unless (($type =~ m[^text/?] and + $type !~ m[^text/(?:html|enriched)(?:;|$)]) or + $type =~ m[^application/pgp(?:;|$)] or + $entity->parts); if ($entity->is_multipart) { my @parts = $entity->parts; foreach my $part (@parts) { - display_entity(entity => $part, - bug_num => $ref, - outer => 0, - msg_num => $xmessage, - output => $output, - attachments => $attachments, - terse => $param{terse}, - exists $param{msg}?(msg=>$param{msg}):(), - exists $param{att}?(att=>$param{att}):(), - exists $param{avatars}?(avatars=>$param{avatars}):(), - ); + my $raw_output = + display_entity(entity => $part, + bug_num => $ref, + outer => 0, + msg_num => $xmessage, + output => $output, + attachments => $attachments, + terse => $param{terse}, + exists $param{msg}?(msg=>$param{msg}):(), + exists $param{att}?(att=>$param{att}):(), + exists $param{avatars}?(avatars=>$param{avatars}):(), + ); + if ($raw_output) { + return $raw_output; + } # print {$output} "\n"; } } elsif ($entity->parts) { @@@ -286,6 -289,7 +289,7 @@@ print {$output} qq(
$body
\n); } } + return 0; } @@@ -314,19 -318,20 +318,20 @@@ sub handle_email_message $parser->output_to_core(1); my $entity = $parser->parse_data( $email); my @attachments = (); - display_entity(entity => $entity, - bug_num => $param{ref}, - outer => 1, - msg_num => $param{msg_num}, - output => $output_fh, - attachments => \@attachments, - terse => $param{terse}, - exists $param{msg}?(msg=>$param{msg}):(), - exists $param{att}?(att=>$param{att}):(), - exists $param{trim_headers}?(trim_headers=>$param{trim_headers}):(), - exists $param{avatars}?(avatars=>$param{avatars}):(), - ); - return decode_utf8($output); + my $raw_output = + display_entity(entity => $entity, + bug_num => $param{ref}, + outer => 1, + msg_num => $param{msg_num}, + output => $output_fh, + attachments => \@attachments, + terse => $param{terse}, + exists $param{msg}?(msg=>$param{msg}):(), + exists $param{att}?(att=>$param{att}):(), + exists $param{trim_headers}?(trim_headers=>$param{trim_headers}):(), + exists $param{avatars}?(avatars=>$param{avatars}):(), + ); + return $raw_output?$output:decode_utf8($output); } =head2 handle_record @@@ -447,7 -452,7 +452,7 @@@ sub __libravatar_url return undef; } ($email) = get_addresses($email); - return $config{libravatar_uri}.md5_hex(lc($email)).($config{libravatar_uri_options}//''); + return $config{libravatar_uri}.$email.($config{libravatar_uri_options}//''); } diff --combined debian/control index d8499ae,d8f19b5..3b0a767 --- a/debian/control +++ b/debian/control @@@ -3,7 -3,7 +3,7 @@@ Section: mis Priority: extra Maintainer: Debbugs developers Uploaders: Colin Watson , Don Armstrong - Standards-Version: 3.8.2 + Standards-Version: 3.9.4 Vcs-Browser: http://bugs.debian.org/debbugs-source/mainline Vcs-Git: http://bugs.debian.org/debbugs-source/debbugs.git Build-Depends: debhelper (>= 5) @@@ -25,7 -25,7 +25,7 @@@ Depends libdebbugs-perl, Recommends: debbugs-web Suggests: spamassassin (>= 3.0), libcgi-alert-perl - Description: The bug tracking system based on the active Debian BTS + Description: bug tracking system based on the active Debian BTS Debian has a bug tracking system which files details of bugs reported by users and developers. Each bug is given a number, and is kept on file until it is marked as having been dealt with. The system is mainly controlled by @@@ -44,9 -44,6 +44,9 @@@ Depends libio-stringy-perl, libmldbm-perl, liburi-perl, libsoap-lite-perl, libcgi-simple-perl, libparams-validate-perl, libtext-template-perl, libsafe-hole-perl, libmail-rfc822-address-perl, liblist-moreutils-perl, + libtext-template-perl, +# used by Debbugs::Libravatar and libravatar.cgi + libfile-libmagic-perl, libgravatar-url-perl, libwww-perl Section: perl Description: modules used by the active Debian BTS Debian has a bug tracking system which files details of bugs reported by @@@ -63,7 -60,7 +63,7 @@@ Architecture: al Depends: ${misc:Depends}, libdebbugs-perl, apache | httpd -Suggests: libcgi-alert-perl +Suggests: libcgi-alert-perl, libapache2-mod-perl2 Description: web scripts for the active Debian BTS Debian has a bug tracking system which files details of bugs reported by users and developers. Each bug is given a number, and is kept on file until @@@ -79,7 -76,7 +79,7 @@@ Depends ${misc:Depends}, libdebbugs-perl, debbugs-web, libconfig-simple-perl, libuser-perl, rsync, libhttp-server-simple-perl, libnet-server-perl - Description: run and maintains a local mirror of the Debian BTS + Description: Run and maintains a local mirror of the Debian BTS Debian has a bug tracking system which files details of bugs reported by users and developers. Each bug is given a number, and is kept on file until it is marked as having been dealt with. The system is