lib/PublicInbox/View.pm | 30 +++++++++++------------------- diff --git a/lib/PublicInbox/View.pm b/lib/PublicInbox/View.pm index 1b55fe7701e109de6591a05659a7304099634696..0fe645ca41cea86834970856145f27f20b899abb 100644 --- a/lib/PublicInbox/View.pm +++ b/lib/PublicInbox/View.pm @@ -524,7 +524,6 @@ # Eml iteration clobbers multipart ->{bdy}, so do not offer # downloads for 0-byte multipart attachments return unless $part->{bdy}; - my $nl = $idx eq '1' ? '' : "\n"; # like join("\n", ...) my $size = length($part->body); delete $part->{bdy}; # save memory @@ -540,23 +539,17 @@ $sfn = 'a.txt'; } else { $sfn = 'a.bin'; } - my $rv = $ctx->{obuf}; - $$rv .= qq($nl{mhref}$idx-$sfn">); - if ($err) { - $$rv .= <{mhref}$idx-$sfn">); + $rv .= <header('Content-Description') // $fn // ''; - $desc = ascii_html($desc); - $$rv .= ($desc eq '') ? "$ts --]" : "$desc --]\n[-- $ts --]"; - $$rv .= "\n"; - - $$rv .= submsg_hdr($ctx, $part) if $part->{is_submsg}; - - undef; + $rv .= ascii_html($desc)." --]\n[-- " if $desc ne ''; + $rv .= "Type: $ct, Size: $size bytes --]\n"; + $rv .= submsg_hdr($ctx, $part) if $part->{is_submsg}; + $rv; } sub add_text_body { # callback for each_part @@ -568,10 +561,9 @@ # $p - from each_part: [ Email::MIME-like, depth, $idx ] my ($part, $depth, $idx) = @$p; my $ct = $part->content_type || 'text/plain'; my $fn = $part->filename; + my $rv = $ctx->{obuf}; my ($s, $err) = msg_part_text($part, $ct); - return attach_link($ctx, $ct, $p, $fn) unless defined $s; - - my $rv = $ctx->{obuf}; + $s // return $$rv .= (attach_link($ctx, $ct, $p, $fn) // ''); if ($part->{is_submsg}) { $$rv .= submsg_hdr($ctx, $part); $$rv .= "\n"; @@ -623,7 +615,7 @@ my @sections = PublicInbox::MsgIter::split_quotes($s); undef $s; # free memory if (defined($fn) || ($depth > 0 && !$part->{is_submsg}) || $err) { # badly-encoded message with $err? tell the world about it! - attach_link($ctx, $ct, $p, $fn, $err); + $$rv .= attach_link($ctx, $ct, $p, $fn, $err); $$rv .= "\n"; } delete $part->{bdy}; # save memory