]> Sergey Matveev's repositories - public-inbox.git/commitdiff
view: fix message truncation logic
authorEric Wong <e@80x24.org>
Sun, 6 Dec 2015 03:14:03 +0000 (03:14 +0000)
committerEric Wong <e@80x24.org>
Sun, 6 Dec 2015 03:14:03 +0000 (03:14 +0000)
Avoid truncating messages if we requested the root anchor.
This regression appeared in
commit 62ee3cb36dd08f17e444e96dc80108464ee10cba
("view: do not shorten top-level messages in thread view")

Also, make the "More..." link more prominent, as readers
should be made aware they're not reading the full message.

lib/PublicInbox/View.pm

index 2506c95417fc267b6e6436ca0e0bf7175922104b..3c4e9547e5f56808dee6caed782f6303c401168a 100644 (file)
@@ -88,7 +88,6 @@ sub index_entry {
 
        $from = PublicInbox::Hval->new_oneline($from)->as_html;
        $subj = PublicInbox::Hval->new_oneline($subj)->as_html;
-       my $more = 'permalink';
        my $root_anchor = $state->{root_anchor} || '';
        my $path = $root_anchor ? '../../' : '';
        my $href = $mid->as_href;
@@ -119,9 +118,11 @@ sub index_entry {
 
        my ($fhref, $more_ref);
        my $mhref = "${path}$href/";
+       my $more = 'permalink';
 
        # show full message if it's our root message
-       if ($root_anchor ne $id || ($level != 0 && !$ctx->{flat})) {
+       my $neq = $root_anchor ne $id;
+       if ($neq || ($neq && $level != 0 && !$ctx->{flat})) {
                $fhref = "${path}$href/f/";
                $more_ref = \$more;
        }
@@ -215,12 +216,14 @@ sub index_walk {
        my $s = add_text_body($enc, $part, $part_nr, $fhref);
 
        if ($more) {
+               my $m = 0;
                # drop the remainder of git patches, they're usually better
                # to review when the full message is viewed
-               $s =~ s!^---+\n.*\z!!ms and $$more = 'more...';
+               $s =~ s!^---+\n.*\z!!ms and $m = 1;
 
                # Drop signatures
-               $s =~ s/^-- \n.*\z//ms and $$more = 'more...';
+               $s =~ s/^-- \n.*\z//ms and $m = 1;
+               $$more = "<b>More...</b>\n\n$$more" if $m;
        }
 
        # kill any leading or trailing whitespace lines