X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=Debbugs%2FCGI%2FBugreport.pm;h=4793cd6ff41060c7f2e0eebc3d3fb63ac8bd5016;hb=e54464a1cb68c4d8d72fa8a152195d5e8915df4b;hp=1518712e3a3fec462991b9add9ab10e39e957383;hpb=55e320bcc73b6ef5c40b70d02dc69049a7e4c1e8;p=debbugs.git diff --git a/Debbugs/CGI/Bugreport.pm b/Debbugs/CGI/Bugreport.pm index 1518712..4793cd6 100644 --- a/Debbugs/CGI/Bugreport.pm +++ b/Debbugs/CGI/Bugreport.pm @@ -33,7 +33,7 @@ use base qw(Exporter); use IO::Scalar; use Params::Validate qw(validate_with :types); use Digest::MD5 qw(md5_hex); -use Debbugs::Mail qw(get_addresses); +use Debbugs::Mail qw(get_addresses :reply); use Debbugs::MIME qw(decode_rfc1522 create_mime_message); use Debbugs::CGI qw(:url :html :util); use Debbugs::Common qw(globify_scalar english_join); @@ -42,6 +42,7 @@ use Debbugs::Config qw(:config); use POSIX qw(strftime); use Encode qw(decode_utf8 encode_utf8); use URI::Escape qw(uri_escape); +use Scalar::Util qw(blessed); BEGIN{ ($VERSION) = q$Revision: 494 $ =~ /^Revision:\s+([^\s+])/; @@ -138,9 +139,8 @@ sub display_entity { if ($param{outer} and not $param{terse} and not exists $param{att}) { - my $header = $entity->head; print {$output} "
\n"; - if ($param{trim_headers}) { + if ($param{trim_headers}) { my @headers; foreach (qw(From To Cc Subject Date)) { my $head_field = $head->get($_); @@ -316,12 +316,17 @@ sub handle_email_message{ my $output; my $output_fh = globify_scalar(\$output); - my $parser = MIME::Parser->new(); - # Because we are using memory, not tempfiles, there's no need to - # clean up here like in Debbugs::MIME - $parser->tmp_to_core(1); - $parser->output_to_core(1); - my $entity = $parser->parse_data( $email); + my $entity; + if (not blessed $email) { + my $parser = MIME::Parser->new(); + # Because we are using memory, not tempfiles, there's no need to + # clean up here like in Debbugs::MIME + $parser->tmp_to_core(1); + $parser->output_to_core(1); + $entity = $parser->parse_data( $email); + } else { + $entity = $email + } my @attachments = (); my $raw_output = display_entity(entity => $entity, @@ -437,8 +442,21 @@ sub handle_record{ options => {msg=>$msg_number, mbox=>'yes'} ) - ) .'">mbox)'.":

\n"; - $output .= handle_email_message($record->{text}, + ) .'">mbox, '; + my $parser = MIME::Parser->new(); + # Because we are using memory, not tempfiles, there's no need to + # clean up here like in Debbugs::MIME + $parser->tmp_to_core(1); + $parser->output_to_core(1); + my $entity = $parser->parse_data($record->{text}); + my $r_l = reply_headers($entity); + $output .= q(reply); + + $output .= ')'.":

\n"; + $output .= handle_email_message($entity, ref => $bug_number, msg_num => $msg_number, %param,