From efae1c2f67220c18f57bd1ebdf7115abd4d6c6e0 Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Wed, 10 Feb 2021 08:59:26 -0100 Subject: search: fix argv handling of quoted phrases This fixes both an old bug in "lei q" argv handling and one recent regression introduced with the change to use approxidate. Field prefixes are also handled correctly inside parenthesized statements when the field follows "(" without a separation character. Fixes: fbb7ccabbf54a405 ("lei q: use git approxidate with d:, dt: and rt: ranges") --- lib/PublicInbox/Search.pm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'lib/PublicInbox/Search.pm') diff --git a/lib/PublicInbox/Search.pm b/lib/PublicInbox/Search.pm index 76a270bc..b3fd532d 100644 --- a/lib/PublicInbox/Search.pm +++ b/lib/PublicInbox/Search.pm @@ -330,8 +330,10 @@ sub query_argv_to_string { if (s!\b(d|rt|dt):([[:print:]]+)\z!date_parse_prepare( $to_parse //= [], $1, $2)!sge) { $_; + } elsif (/\s/) { + s/(.*?)\b(\w+:)// ? qq{$1$2"$_"} : qq{"$_"}; } else { - /\s/ ? (s/\A(\w+:)// ? qq{$1"$_"} : qq{"$_}) : $_ + $_ } } @$argv); # git-rev-parse can handle any number of args up to system -- cgit v1.2.3-24-ge0c7