From: mkanat%bugzilla.org <> Date: Wed, 30 Sep 2009 08:53:25 +0000 (+0000) Subject: Bug 328628: When attachments have UTF-8 characters in their name, they will now be... X-Git-Tag: bugzilla-3.4.3~17 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9f94ab5842a69d37b5d53e39603cdb67802c4b75;p=thirdparty%2Fbugzilla.git Bug 328628: When attachments have UTF-8 characters in their name, they will now be downloaded with the correct name. Patch by Max Kanat-Alexander r=Wurblzap, a=mkanat --- diff --git a/attachment.cgi b/attachment.cgi index 89ef451525..da705a5cdd 100755 --- a/attachment.cgi +++ b/attachment.cgi @@ -52,6 +52,8 @@ use Bugzilla::Attachment::PatchReader; use Bugzilla::Token; use Bugzilla::Keyword; +use Encode qw(encode); + # For most scripts we don't make $cgi and $template global variables. But # when preparing Bugzilla for mod_perl, this script used these # variables in so many subroutines that it was easier to just @@ -336,6 +338,11 @@ sub view { $filename =~ s/\\/\\\\/g; # escape backslashes $filename =~ s/"/\\"/g; # escape quotes + # Avoid line wrapping done by Encode, which we don't need for HTTP + # headers. See discussion in bug 328628 for details. + local $Encode::Encoding{'MIME-Q'}->{'bpl'} = 10000; + $filename = encode('MIME-Q', $filename); + my $disposition = Bugzilla->params->{'allow_attachment_display'} ? 'inline' : 'attachment'; print $cgi->header(-type=>"$contenttype; name=\"$filename\"",