From 5822bd37808c1ac21863d37161b19f1021657a58 Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Tue, 4 May 2021 05:14:19 +0000 Subject: lei ls-mail-sync: fix handling of non-wildcard filters If lei_ls_mail_sync() is given a filter without any wildcards and --globoff is unspecified, glob2re() will return undef, resulting in the final regular expression being undefined. Always use a fallback value when there's no RE. Based-on-patch-by: Kyle Meyer Link: https://public-inbox.org/meta/20210504044559.12941-5-kyle@kyleam.com/ --- lib/PublicInbox/LeiLsMailSync.pm | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'lib/PublicInbox/LeiLsMailSync.pm') diff --git a/lib/PublicInbox/LeiLsMailSync.pm b/lib/PublicInbox/LeiLsMailSync.pm index 532ea9b5..505c0b3f 100644 --- a/lib/PublicInbox/LeiLsMailSync.pm +++ b/lib/PublicInbox/LeiLsMailSync.pm @@ -12,9 +12,8 @@ sub lei_ls_mail_sync { my $sto = $lei->_lei_store or return; my $lms = $sto->search->lms or return; my $opt = $lei->{opt}; - my $re; - $re = defined($filter) ? qr/\Q$filter\E/ : qr/./ if $opt->{globoff}; - $re //= $lei->glob2re($filter // '*'); + my $re = $opt->{globoff} ? undef : $lei->glob2re($filter // '*'); + $re //= qr/\Q$filter\E/; my @f = $lms->folders; @f = $opt->{'invert-match'} ? grep(!/$re/, @f) : grep(/$re/, @f); if ($opt->{'local'} && !$opt->{remote}) { -- cgit v1.2.3-24-ge0c7