From: Eric Wong Date: Tue, 16 Jun 2020 07:05:06 +0000 (+0000) Subject: imap: *SEARCH: reinstate "TEXT" search-key X-Git-Tag: v1.6.0~370 X-Git-Url: http://www.git.stargrave.org/?p=public-inbox.git;a=commitdiff_plain;h=9c2bac94376c5029d258fed1ad3bf8c6b2270019 imap: *SEARCH: reinstate "TEXT" search-key I accidentally dropped "TEXT" handling while porting the IMAP search query parser to Parse::RecDescent. This reinstates it and adds a test to prevent future regression, and the additional test fixes a counting error for non-Xapian-enabled systems. --- diff --git a/lib/PublicInbox/IMAPsearchqp.pm b/lib/PublicInbox/IMAPsearchqp.pm index c9b442cb..4ea99ea5 100644 --- a/lib/PublicInbox/IMAPsearchqp.pm +++ b/lib/PublicInbox/IMAPsearchqp.pm @@ -16,7 +16,6 @@ my %MM = map {; $MoY[$_-1] => sprintf('%02u', $_) } (1..12); # IMAP to Xapian header search key mapping my %IH2X = ( - TEXT => '', SUBJECT => 's:', BODY => 'b:', FROM => 'f:', @@ -183,6 +182,7 @@ search_key1 : "ALL" | "RECENT" | "UNSEEN" | "NEW" | CC_string | BCC_string | SUBJECT_string + | TEXT_string | UID_set | MSN_set | sub_query @@ -239,6 +239,7 @@ TO_string : "TO" string { $q->ih2x('TO', $item{string}) } CC_string : "CC" string { $q->ih2x('CC', $item{string}) } BCC_string : "BCC" string { $q->ih2x('BCC', $item{string}) } SUBJECT_string : "SUBJECT" string { $q->ih2x('SUBJECT', $item{string}) } +TEXT_string : "TEXT" string { $q->ih2x(undef, $item{string}) } op_subq_enter : '(' { $q->subq_enter } sub_query : op_subq_enter search_key1(s) ')' { $q->subq_leave } diff --git a/t/imapd.t b/t/imapd.t index 4e2c8931..f9d93448 100644 --- a/t/imapd.t +++ b/t/imapd.t @@ -398,6 +398,8 @@ SKIP: { is(scalar(@$x), 1, 'MSN SEARCH on Subject works after rm'); $x = $mic->message_string($x->[0]); is($x, $ret->{2}->{RFC822}, 'message 2 unchanged'); + $x = $mic->search(qw(text embedded)); + is(scalar(@$x), 1, 'MSN SEARCH on TEXT works after rm'); } # FIXME? no EXPUNGE response, yet