about summary refs log tree commit homepage
diff options
context:
space:
mode:
authorEric Wong <e@80x24.org>2021-03-05 04:03:05 +0000
committerEric Wong <e@80x24.org>2021-03-05 07:20:29 +0000
commit7d72d2814e6703bdf411f55ed0461eeb214b7e89 (patch)
tree2123868fc29e7140a5ba53d822d4b16103502330
parent7d186c6fa885c7b04c9e2a65b3fc501120b7866f (diff)
downloadpublic-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.pm6
-rw-r--r--t/lei-q-thread.t8
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;