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::Common qw(globify_scalar english_join hash_slice);
use Debbugs::UTF8;
use Debbugs::Config qw(:config);
use Debbugs::Log qw(:read);
use Encode qw(decode_utf8 encode_utf8);
use URI::Escape qw(uri_escape_utf8);
use Scalar::Util qw(blessed);
-use List::Util qw(sum);
+use List::AllUtils qw(sum);
use File::Temp;
BEGIN{
output => $output,
attachments => $attachments,
terse => $param{terse},
- exists $param{msg}?(msg=>$param{msg}):(),
- exists $param{att}?(att=>$param{att}):(),
- exists $param{avatars}?(avatars=>$param{avatars}):(),
+ hash_slice(%param,qw(msg att avatars)),
);
if ($raw_output) {
return $raw_output;
output => $output,
attachments => $attachments,
terse => $param{terse},
- exists $param{msg}?(msg=>$param{msg}):(),
- exists $param{att}?(att=>$param{att}):(),
- exists $param{avatars}?(avatars=>$param{avatars}):(),
+ hash_slice(%param,qw(msg att avatars)),
);
# print {$output} "\n";
}
) {
# 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;
}
output => $output_fh,
attachments => \@attachments,
terse => $param{terse},
- exists $param{msg}?(msg=>$param{msg}):(),
- exists $param{att}?(att=>$param{att}):(),
- exists $param{trim_headers}?(trim_headers=>$param{trim_headers}):(),
- exists $param{avatars}?(avatars=>$param{avatars}):(),
+ hash_slice(%param,qw(msg att trim_headers avatars),
+ ),
);
return $raw_output?$output:decode_utf8($output);
}
# 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: