about summary refs log tree commit homepage
diff options
context:
space:
mode:
authorEric Wong <e@80x24.org>2014-08-31 02:52:27 +0000
committerEric Wong <e@80x24.org>2014-08-31 02:52:27 +0000
commitf6835e9f41767954aba54cd478132407a3e48617 (patch)
treebddfc8e8cb6f2234c3b55de6bda1e6c01e0bc09b
parent1f23784800e0cc018b0e8565ca06bab0b2d08f7c (diff)
downloadpublic-inbox-f6835e9f41767954aba54cd478132407a3e48617.tar.gz
It's helpful to show context if a message does not
appear on the current index page.
-rw-r--r--lib/PublicInbox/View.pm17
1 files changed, 12 insertions, 5 deletions
diff --git a/lib/PublicInbox/View.pm b/lib/PublicInbox/View.pm
index d1bb9356..c1a5fbb1 100644
--- a/lib/PublicInbox/View.pm
+++ b/lib/PublicInbox/View.pm
@@ -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;