lib/PublicInbox/View.pm | 17 ++++++++++++-----
diff --git a/lib/PublicInbox/View.pm b/lib/PublicInbox/View.pm
index d1bb93566a5f9fddbf74b270e480665a829e33c9..c1a5fbb17e0af4a703b89aa3031ad0b85f477135 100644
--- a/lib/PublicInbox/View.pm
+++ b/lib/PublicInbox/View.pm
@@ -76,6 +76,13 @@ $ts = POSIX::strftime($fmt, gmtime($ts));
$rv .= "$pfx$subj $from - $ts\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 @@ }
my $s = ascii_html($enc->decode($part->body));
- # drop quotes, including the "so-and-so wrote:" line
- $s =~ s/(?:^[^\n]*:\s*\n)?(?:^>[^\n]*\n)+(?:^\s*\n)?//mg;
+ if (defined $anchor) {
+ # drop quotes, including the "so-and-so wrote:" line
+ $s =~ s/(?:^[^\n]*:\s*\n)?
+ (?:^>[^\n]*\n)+(?:^\s*\n)?//mgx;
+ }
# Drop signatures
$s =~ s/^-- \n.*\z//ms;
@@ -119,10 +129,7 @@ my $txt = 'm/' . $mid->as_href . '.txt';
$rv .= "raw ";
$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;