]> git.donarmstrong.com Git - debbugs.git/blobdiff - Debbugs/CGI/Bugreport.pm
Merge remote-tracking branch 'origin/master' into database
[debbugs.git] / Debbugs / CGI / Bugreport.pm
index ce1bd30d8395110b8c185ea22379ec0276a2b3d1..dccae9541f5b9934335463579c778fe37a9d3fa0 100644 (file)
@@ -35,7 +35,7 @@ use IO::Scalar;
 use Params::Validate qw(validate_with :types);
 use Digest::MD5 qw(md5_hex);
 use Debbugs::Mail qw(get_addresses :reply);
-use Debbugs::MIME qw(decode_rfc1522 create_mime_message);
+use Debbugs::MIME qw(decode_rfc1522 create_mime_message parse_to_mime_entity);
 use Debbugs::CGI qw(:url :html :util);
 use Debbugs::Common qw(globify_scalar english_join);
 use Debbugs::UTF8;
@@ -45,7 +45,7 @@ use POSIX qw(strftime);
 use Encode qw(decode_utf8 encode_utf8);
 use URI::Escape qw(uri_escape_utf8);
 use Scalar::Util qw(blessed);
-use List::Util qw(sum0);
+use List::AllUtils qw(sum);
 use File::Temp;
 
 BEGIN{
@@ -279,7 +279,7 @@ sub display_entity {
             # if the first 20 lines in the message which have any non-space
             # characters are larger than 100 characters more often than they
             # are not, then use CSS to try to impose sensible wrapping
-            sum0(map {length ($_) > 100?1:-1} grep {/\S/} split /\n/,$body,20) > 0
+            sum(0,map {length ($_) > 100?1:-1} grep {/\S/} split /\n/,$body,20) > 0
            ) {
             $css_class .= " wrapping";
         }
@@ -304,7 +304,7 @@ sub display_entity {
            ) {
             # Add links to CVE vulnerabilities (closes #568464)
             $body =~ s{(^|\s|[\(\[])(CVE-\d{4}-\d{4,})(\s|[,.-\[\]\)]|$)}
-                      {$1<a href="http://$config{cve_tracker}$2">$2</a>$3}gxm;
+                      {$1<a href="$config{cve_tracker}$2">$2</a>$3}gxm;
         }
         if (not exists $param{att}) {
              print {$output} qq(<pre class="$css_class">$body</pre>\n);
@@ -335,17 +335,7 @@ sub handle_email_message{
      my $entity;
      my $tempdir;
      if (not blessed $record) {
-         my $parser = MIME::Parser->new();
-         # this will be cleaned up once it goes out of scope
-         $tempdir = File::Temp->newdir();
-         $parser->output_under($tempdir->dirname());
-         if ($record->{inner_file}) {
-             $entity = $parser->parse($record->{fh}) or
-                 die "Unable to parse entity";
-         } else {
-             $entity = $parser->parse_data($record->{text}) or
-                 die "Unable to parse entity";
-         }
+        $entity = parse_to_mime_entity($record);
      } else {
          $entity = $record;
      }