diff options
author | Eric Wong <e@80x24.org> | 2021-03-05 04:03:05 +0000 |
---|---|---|
committer | Eric Wong <e@80x24.org> | 2021-03-05 07:20:29 +0000 |
commit | 7d72d2814e6703bdf411f55ed0461eeb214b7e89 (patch) | |
tree | 2123868fc29e7140a5ba53d822d4b16103502330 | |
parent | 7d186c6fa885c7b04c9e2a65b3fc501120b7866f (diff) | |
download | public-inbox-7d72d2814e6703bdf411f55ed0461eeb214b7e89.tar.gz |
We only want to set `flagged' if a user requests it via a two '-t' switches. Fixes: 232f8e376fe2856c ("lei q: -tt marks direct hits as flagged")
-rw-r--r-- | lib/PublicInbox/LeiXSearch.pm | 6 | ||||
-rw-r--r-- | t/lei-q-thread.t | 8 |
2 files changed, 9 insertions, 5 deletions
diff --git a/lib/PublicInbox/LeiXSearch.pm b/lib/PublicInbox/LeiXSearch.pm index 3270b420..f2c8c02e 100644 --- a/lib/PublicInbox/LeiXSearch.pm +++ b/lib/PublicInbox/LeiXSearch.pm @@ -148,7 +148,7 @@ sub query_thread_mset { # for --threads my $mset; my $each_smsg = $lei->{ovv}->ovv_each_smsg_cb($lei, $ibxish); my $can_kw = !!$ibxish->can('msg_keywords'); - my $fl = $lei->{opt}->{threads} > 1; + my $fl = $lei->{opt}->{threads} > 1 ? [ 'flagged' ] : undef; do { $mset = $srch->mset($mo->{qstr}, $mo); mset_progress($lei, $desc, $mset->size, @@ -165,8 +165,8 @@ sub query_thread_mset { # for --threads if ($mitem) { if ($can_kw) { mitem_kw($smsg, $mitem, $fl); - } else { - $smsg->{kw} = [ 'flagged' ]; + } elsif ($fl) { + $smsg->{kw} = $fl; } } $each_smsg->($smsg, $mitem); diff --git a/t/lei-q-thread.t b/t/lei-q-thread.t index 0ddf47a6..28c639f5 100644 --- a/t/lei-q-thread.t +++ b/t/lei-q-thread.t @@ -41,8 +41,12 @@ test_lei(sub { 'flagged set in direct hit'); 'TODO' or is_deeply($m{'<testmessage@example.com>'}->{kw}, ['draft'], 'flagged set in direct hit'); - lei_ok qw(q -t -t m:testmessage@example.com --only), "$ro_home/t2"; + lei_ok qw(q -tt m:testmessage@example.com --only), "$ro_home/t2"; $res = json_utf8->decode($lei_out); - is_deeply($res->[0]->{kw}, [ 'flagged' ], 'flagged set on external'); + is_deeply($res->[0]->{kw}, [ 'flagged' ], + 'flagged set on external with -tt'); + lei_ok qw(q -t m:testmessage@example.com --only), "$ro_home/t2"; + $res = json_utf8->decode($lei_out); + ok(!exists($res->[0]->{kw}), 'flagged not set on external with 1 -t'); }); done_testing; |