user/dev discussion of public-inbox itself
 help / color / mirror / code / Atom feed
Search results ordered by [date|relevance]  view[summary|nested|Atom feed]
thread overview below | download mbox.gz: |
* [PATCH 2/2] watchmaildir: match List-ID case-insensitively
  2020-04-23  8:34  7% [RFC 0/2] watch behavior changes aNd ProPoSaL Eric Wong
@ 2020-04-23  8:34  7% ` Eric Wong
  0 siblings, 0 replies; 2+ results
From: Eric Wong @ 2020-04-23  8:34 UTC (permalink / raw)
  To: meta

RFC 2919 section 6 states the following:

  There is only one operation defined for list identifiers,
  that of case insensitive equality.

So no arguing with that.  Now, the other headers are
open to interpretation, so put a note about them.
---
 lib/PublicInbox/WatchMaildir.pm | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/lib/PublicInbox/WatchMaildir.pm b/lib/PublicInbox/WatchMaildir.pm
index 02e4b32f..71bd84fc 100644
--- a/lib/PublicInbox/WatchMaildir.pm
+++ b/lib/PublicInbox/WatchMaildir.pm
@@ -62,12 +62,17 @@ sub new {
 			if (my $whs = $ibx->{watchheader}) {
 				for (@$whs) {
 					my ($k, $v) = split(/:/, $_, 2);
+					# XXX should this be case-insensitive?
+					# Or, mutt-style, case-sensitive iff
+					# a capital letter exists?
 					push @$watch_hdrs, [ $k, qr/\Q$v\E/ ];
 				}
 			}
 			if (my $list_ids = $ibx->{listid}) {
 				for (@$list_ids) {
-					my $re = qr/<[ \t]*\Q$_\E[ \t]*>/;
+					# RFC2919 section 6 stipulates
+					# "case insensitive equality"
+					my $re = qr/<[ \t]*\Q$_\E[ \t]*>/i;
 					push @$watch_hdrs, ['List-Id', $re ];
 				}
 			}

^ permalink raw reply	[relevance 7%]

* [RFC 0/2] watch behavior changes aNd ProPoSaL
@ 2020-04-23  8:34  7% Eric Wong
  2020-04-23  8:34  7% ` [PATCH 2/2] watchmaildir: match List-ID case-insensitively Eric Wong
  0 siblings, 1 reply; 2+ results
From: Eric Wong @ 2020-04-23  8:34 UTC (permalink / raw)
  To: meta

Now, I don't think the following two patches will cause any
problems for existing users...

Down the line, for matching non-List-ID headers insensitively,
I'm thinking "mutt style" case-sensitivity is probably a good
default.  That is:

	Match case-sensitively iff capital letters exist in
	the substring.  Otherwise, match case-insensitively.

But, mutt allows POSIX regexps...  I'm not sure if regexps are
necessary for this, and I also don't want this to be tied to
Perl/PCRE in case we or someone else wants to use another
language/runtime.  We can't use POSIX regexps from Perl w/o
XS from CPAN or Inline::C, so more crap to force on the user.

Otherwise, I'm not sure how a user should (or would care to)
specify case-insensitivity vs case-sensitivity...

Valid email headers names won't have spaces (or many other
chars), so we can do somthing like attempt to parse out " -i"
(like "grep -i"):

	watchheader = To -i:John Smith

Or, add a new option:

	watchHeaderInsensitively = To:John Smith

Ugh...

Eric Wong (2):
  watchmaildir: scan all matching headers
  watchmaildir: match List-ID case-insensitively

 lib/PublicInbox/WatchMaildir.pm | 13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

^ permalink raw reply	[relevance 7%]

Results 1-2 of 2 | reverse | sort options + mbox downloads above
-- links below jump to the message on this page --
2020-04-23  8:34  7% [RFC 0/2] watch behavior changes aNd ProPoSaL Eric Wong
2020-04-23  8:34  7% ` [PATCH 2/2] watchmaildir: match List-ID case-insensitively Eric Wong

Code repositories for project(s) associated with this inbox:

	https://80x24.org/public-inbox.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).