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;
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{
# 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";
}
) {
# 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);
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;
}
# this will be cleaned up once it goes out of scope
my $tempdir = File::Temp->newdir();
$parser->output_under($tempdir->dirname());
+ $parser->filer->ignore_filename(1);
my $entity;
if ($record->{inner_file}) {
$entity = $parser->parse($record->{fh});
__END__
-
-
-
-
-
-
+# Local Variables:
+# cperl-indent-level: 4
+# indent-tabs-mode: nil
+# End: