lib/PublicInbox/LeiXSearch.pm | 6 +++--- t/lei-q-thread.t | 8 ++++++-- diff --git a/lib/PublicInbox/LeiXSearch.pm b/lib/PublicInbox/LeiXSearch.pm index 3270b420b64c18a94b74b67574c8e5089b91de0f..f2c8c02e8c653c7d670128093a31d0d4c7049c93 100644 --- a/lib/PublicInbox/LeiXSearch.pm +++ b/lib/PublicInbox/LeiXSearch.pm @@ -148,7 +148,7 @@ my $mo = { %{$lei->{mset_opt}} }; 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 @@ my $mitem = delete $n2item{$smsg->{num}}; 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 0ddf47a69fe12741a1b1ef320e63a567ea45394e..28c639f5e35c22e0cfba0ac3dbe16b779001ea0a 100644 --- a/t/lei-q-thread.t +++ b/t/lei-q-thread.t @@ -41,8 +41,12 @@ is_deeply($m{''}->{kw}, ['flagged', 'seen'], 'flagged set in direct hit'); 'TODO' or is_deeply($m{''}->{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;