about summary refs log tree commit homepage
path: root/lib/PublicInbox/Search.pm
diff options
context:
space:
mode:
authorEric Wong <e@80x24.org>2015-08-20 02:30:29 +0000
committerEric Wong <e@80x24.org>2015-08-20 02:31:36 +0000
commitd0fb726671b98771b982000d408db14ad492c5e1 (patch)
tree7bec6d931d014f42835be4caaf543ca64eced0b0 /lib/PublicInbox/Search.pm
parent0ccdf0171d4ee715352feec69a1ed330326dfe1a (diff)
downloadpublic-inbox-d0fb726671b98771b982000d408db14ad492c5e1.tar.gz
We can display /t/$MESSAGE_ID.html easily with a Xapian search
index, so rely on it instead of trying to display messages inline.
Diffstat (limited to 'lib/PublicInbox/Search.pm')
-rw-r--r--lib/PublicInbox/Search.pm15
1 files changed, 11 insertions, 4 deletions
diff --git a/lib/PublicInbox/Search.pm b/lib/PublicInbox/Search.pm
index b9f283fb..c28401bc 100644
--- a/lib/PublicInbox/Search.pm
+++ b/lib/PublicInbox/Search.pm
@@ -492,14 +492,21 @@ sub merge_threads {
 # normalize subjects so they are suitable as pathnames for URLs
 sub subject_path {
         my $subj = pop;
-
-        $subj =~ s/\A\s+//;
-        $subj =~ s/\s+\z//;
-        $subj =~ s/$REPLY_RE//igo; # remove reply prefix
+        $subj = subject_normalized($subj);
         $subj =~ s![^a-zA-Z0-9_\.~/\-]+!_!g;
         lc($subj);
 }
 
+sub subject_normalized {
+        my $subj = pop;
+        $subj =~ s/\A\s+//s; # no leading space
+        $subj =~ s/\s+\z//s; # no trailing space
+        $subj =~ s/\s+/ /gs; # no redundant spaces
+        $subj =~ s/\.+\z//; # no trailing '.'
+        $subj =~ s/$REPLY_RE//igo; # remove reply prefix
+        $subj;
+}
+
 sub do_cat_mail {
         my ($git, $blob) = @_;
         my $mime = eval {