diff options
-rw-r--r-- | Bugzilla/CGI.pm | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/Bugzilla/CGI.pm b/Bugzilla/CGI.pm index b78c077e9..091362306 100644 --- a/Bugzilla/CGI.pm +++ b/Bugzilla/CGI.pm @@ -166,7 +166,19 @@ sub multipart_init { # Have to add the cookies in. sub multipart_start { my $self = shift; - my $headers = $self->SUPER::multipart_start(@_); + + my %args = @_; + + # CGI.pm::multipart_start doesn't accept a -charset parameter, so + # we do it ourselves here + if (defined $args{-charset} && defined $args{-type}) { + # Remove any existing charset specifier + $args{-type} =~ s/;.*$//; + # and add the specified one + $args{-type} .= "; charset=$args{-charset}"; + } + + my $headers = $self->SUPER::multipart_start(%args); # Eliminate the one extra CRLF at the end. $headers =~ s/$CGI::CRLF$//; # Add the cookies. We have to do it this way instead of |