]> Sergey Matveev's repositories - public-inbox.git/commitdiff
overidx: subject_path: allow non-ASCII char in subject matches
authorEric Wong <e@80x24.org>
Wed, 6 Oct 2021 10:12:21 +0000 (10:12 +0000)
committerEric Wong <e@80x24.org>
Wed, 6 Oct 2021 11:23:51 +0000 (11:23 +0000)
This should bring us closer to the "Base subject" definition in
IMAP ORDEREDSUBJECT (RFC 5256 2.1).  Larger changes may cause
some breakage (until --reindex).  But for now, a reindex will
prevents the non-ASCII subjects from being normalized to the
same fuzzy "thread" in the thread view.

lib/PublicInbox/OverIdx.pm
lib/PublicInbox/Smsg.pm

index 2e3d4534f125d92383f3e05e03fcf0ad10b6e3a1..0c8a4d9ee3f846d67cd514a41e1cbe8e916950be 100644 (file)
@@ -243,12 +243,13 @@ sub link_refs {
        $tid;
 }
 
-# normalize subjects so they are suitable as pathnames for URLs
-# XXX: consider for removal
+# normalize subjects somewhat, they used to be ASCII-only but now
+# we use \w for UTF-8 support.  We may still drop it entirely and
+# rely on Xapian for subject matches...
 sub subject_path ($) {
        my ($subj) = @_;
        $subj = subject_normalized($subj);
-       $subj =~ s![^a-zA-Z0-9_\.~/\-]+!_!g;
+       $subj =~ s![^\w\.~/\-]+!_!g;
        lc($subj);
 }
 
index da8ce590991a3e40522bcab2bc0c561d5aa5683f..fb28eff7326e06d19e05cc1a096fc55cf54b3bdd 100644 (file)
@@ -145,6 +145,8 @@ sub internaldate { # for IMAP
 
 our $REPLY_RE = qr/^re:\s+/i;
 
+# TODO: see RFC 5256 sec 2.1 "Base Subject" and evaluate compatibility
+# w/ existing indices...
 sub subject_normalized ($) {
        my ($subj) = @_;
        $subj =~ s/\A\s+//s; # no leading space