about summary refs log tree commit homepage
diff options
context:
space:
mode:
-rw-r--r--lib/PublicInbox/View.pm13
-rw-r--r--t/feed.t7
-rw-r--r--t/view.t4
3 files changed, 17 insertions, 7 deletions
diff --git a/lib/PublicInbox/View.pm b/lib/PublicInbox/View.pm
index 84c7393b..17aca94e 100644
--- a/lib/PublicInbox/View.pm
+++ b/lib/PublicInbox/View.pm
@@ -8,6 +8,7 @@ use CGI qw/escapeHTML/;
 use Encode qw/find_encoding/;
 use Encode::MIME::Header;
 use Email::MIME::ContentType qw/parse_content_type/;
+use constant MAX_INLINE_QUOTED => 5;
 
 my $enc_utf8 = find_encoding('utf8');
 my $enc_ascii = find_encoding('us-ascii');
@@ -88,10 +89,10 @@ sub add_text_body_short {
         my ($enc, $part, $part_nr, $full_pfx) = @_;
         my $n = 0;
         my $s = ascii_html($enc->decode($part->body));
-        $s =~ s!^((?:(?:>[^\n]+)\n)+)!
+        $s =~ s!^((?:(?:>[^\n]*)\n)+)!
                 my $cur = $1;
                 my @lines = split(/\n/, $cur);
-                if (@lines > 1) {
+                if (@lines > MAX_INLINE_QUOTED) {
                         # show a short snippet of quoted text
                         $cur = join(' ', @lines);
                         $cur =~ s/> ?//g;
@@ -100,10 +101,10 @@ sub add_text_body_short {
                         $cur = '';
                         do {
                                 $cur .= shift(@sum) . ' ';
-                        } while (@sum && length($cur) < 68);
+                        } while (@sum && length($cur) < 64);
                         $cur=~ s/ \z/ .../;
                         "&gt; &lt;<a href=\"${full_pfx}#q${part_nr}_" . $n++ .
-                                "\">$cur<\/a>&gt;";
+                                "\">$cur<\/a>&gt;\n";
                 } else {
                         $cur;
                 }
@@ -115,10 +116,10 @@ sub add_text_body_full {
         my ($enc, $part, $part_nr) = @_;
         my $n = 0;
         my $s = ascii_html($enc->decode($part->body));
-        $s =~ s!^((?:(?:&gt;[^\n]+)\n)+)!
+        $s =~ s!^((?:(?:&gt;[^\n]*)\n)+)!
                 my $cur = $1;
                 my @lines = split(/\n/, $cur);
-                if (@lines > 1) {
+                if (@lines > MAX_INLINE_QUOTED) {
                         "<a name=q${part_nr}_" . $n++ . ">$cur</a>";
                 } else {
                         $cur;
diff --git a/t/feed.t b/t/feed.t
index 63fcc443..125490d6 100644
--- a/t/feed.t
+++ b/t/feed.t
@@ -31,10 +31,15 @@ Date: Thu, 01 Jan 1970 00:00:00 +0000
 
 > This is a long multi line quote so it should not be allowed to
 > show up in its entirty in the Atom feed.  drop me
+> I quote to much
+> I quote to much
+> I quote to much
+> I quote to much
 
 msg $i
 
-> inline me here, short quote
+> inline me here
+> this is a short quote
 
 keep me
 EOF
diff --git a/t/view.t b/t/view.t
index ef1b74c9..067f9890 100644
--- a/t/view.t
+++ b/t/view.t
@@ -16,6 +16,10 @@ OK
 
 > Long and wordy reply goes here and it is split across multiple lines.
 > We generate links to a separate full page where quoted-text is inline.
+> This is
+>
+> Currently 5 lines
+> See MAX_INLINE_QUOTED
 
 hello world
 EOF