]> Sergey Matveev's repositories - public-inbox.git/commitdiff
view: show quotes in index if parent is too old
authorEric Wong <e@80x24.org>
Sun, 31 Aug 2014 02:52:27 +0000 (02:52 +0000)
committerEric Wong <e@80x24.org>
Sun, 31 Aug 2014 02:52:27 +0000 (02:52 +0000)
It's helpful to show context if a message does not
appear on the current index page.

lib/PublicInbox/View.pm

index d1bb93566a5f9fddbf74b270e480665a829e33c9..c1a5fbb17e0af4a703b89aa3031ad0b85f477135 100644 (file)
@@ -76,6 +76,13 @@ sub index_entry {
 
        $rv .= "$pfx<a name=\"$name\"><b>$subj</b> $from - $ts</a>\n\n";
 
+       my $irp = $header_obj->header_raw('In-Reply-To');
+       my ($anchor_idx, $anchor);
+       if (defined $irp) {
+               $anchor_idx = anchor_for($irp);
+               $anchor = $seen->{$anchor_idx};
+       }
+
        # scan through all parts, looking for displayable text
        $mime->walk_parts(sub {
                my ($part) = @_;
@@ -91,8 +98,11 @@ sub index_entry {
 
                my $s = ascii_html($enc->decode($part->body));
 
-               # drop quotes, including the "so-and-so wrote:" line
-               $s =~ s/(?:^[^\n]*:\s*\n)?(?:^&gt;[^\n]*\n)+(?:^\s*\n)?//mg;
+               if (defined $anchor) {
+                       # drop quotes, including the "so-and-so wrote:" line
+                       $s =~ s/(?:^[^\n]*:\s*\n)?
+                              (?:^&gt;[^\n]*\n)+(?:^\s*\n)?//mgx;
+               }
 
                # Drop signatures
                $s =~ s/^-- \n.*\z//ms;
@@ -119,10 +129,7 @@ sub index_entry {
        $rv .= "<a\nhref=\"$txt\">raw</a> ";
        $rv .= html_footer($mime, 0);
 
-       my $irp = $header_obj->header_raw('In-Reply-To');
        if (defined $irp) {
-               my $anchor_idx = anchor_for($irp);
-               my $anchor = $seen->{$anchor_idx};
                unless (defined $anchor) {
                        my $v = PublicInbox::Hval->new_msgid($irp);
                        my $html = $v->as_html;