]> Sergey Matveev's repositories - public-inbox.git/commitdiff
lei_view_text: improve attachment display
authorEric Wong <e@80x24.org>
Wed, 28 Apr 2021 07:52:03 +0000 (07:52 +0000)
committerEric Wong <e@80x24.org>
Wed, 28 Apr 2021 19:30:58 +0000 (19:30 +0000)
Support setting a color to distinguish from user-supplied text.
We'll also put the $BLOB:$IDX identifier on a separate line and
just put the entire corresponding lei command in the form of:
"[-- lei blob $BLOB:$IDX --]" to teach users how to access it.

lib/PublicInbox/LeiViewText.pm

index 6f5fca492bc224b10ff4f03011002098b86ad480..5d649840e595296a4ef6d9696d585e2d18eb7b65 100644 (file)
@@ -25,6 +25,7 @@ my %DEFAULT_COLOR = (
        quoted => 'blue',
        hdrdefault => 'cyan',
        status => 'bright_cyan', # smsg stuff
+       attachment => 'bright_red',
 
        # git names and defaults, falls back to ~/.gitconfig
        new => 'green',
@@ -113,20 +114,21 @@ sub hdr_buf ($$) {
 sub attach_note ($$$$;$) {
        my ($self, $ct, $p, $fn, $err) = @_;
        my ($part, $depth, $idx) = @$p;
-       my $obuf = $self->{obuf};
        my $nl = $idx eq '1' ? '' : "\n"; # like join("\n", ...)
-       $$obuf .= <<EOF if $err;
+       my $abuf = $err ? <<EOF : '';
 [-- Warning: decoded text below may be mangled, UTF-8 assumed --]
 EOF
-       my $blob = $self->{-smsg}->{blob} // '';
-       $blob .= ':' if $blob ne '';
-       $$obuf .= "[-- Attachment $blob$idx ";
+       $abuf .= "[-- Attachment #$idx: ";
        _xs($ct);
        my $size = length($part->body);
        my $ts = "Type: $ct, Size: $size bytes";
        my $d = $part->header('Content-Description') // $fn // '';
        _xs($d);
-       $$obuf .= $d eq '' ? "$ts --]\n" : "$d --]\n[-- $ts --]\n";
+       $abuf .= $d eq '' ? "$ts --]\n" : "$d --]\n[-- $ts --]\n";
+       if (my $blob = $self->{-smsg}->{blob}) {
+               $abuf .= "[-- lei blob $blob:$idx --]\n";
+       }
+       $self->{-colored}->($self, 'attachment', $abuf);
        hdr_buf($self, $part) if $part->{is_submsg};
 }