From: Richard Stanton <rhstanton@berkeley.edu>
To: David Bremner <david@tethera.net>
Cc: notmuch@notmuchmail.org
Subject: Re: notmuch-search not excluding excluded tags
Date: Wed, 17 Apr 2024 01:33:09 -0700 [thread overview]
Message-ID: <13EBA7E9-C099-4147-95E6-C10FCBD63F4C@berkeley.edu> (raw)
In-Reply-To: <2F59B52F-B0A9-4D8D-BE8A-7B981D894E9D@berkeley.edu>
In case anyone else is affected by this, the problem I was having was that notmuch-search org links (defined in ol-notmuch.el) were returning results that included spam and trash messages even though I had asked to exclude these. To get around this, redefine org-notmuch-search-open to explicitly pass some additional options to notmuch-search:
(defun org-notmuch-search-open (path _)
"Follow a notmuch search link specified by PATH."
(notmuch-search path notmuch-search-oldest-first notmuch-search-hide-excluded))
> On Apr 16, 2024, at 3:53 PM, Richard H. Stanton <rhstanton@berkeley.edu> wrote:
>
> Actually, I think the code might be working as intended. Calling notmuch-search interactively things work just fine, and in the comments I see the note
>
> "When called interactively, this will prompt for a query and use the configured default sort order.”
>
> This sounds like it deliberately ignores the default settings when the function is called non-interactively, but why…?
>
>
>
>
>
>> On Apr 16, 2024, at 3:40 PM, Richard H. Stanton <rhstanton@berkeley.edu> wrote:
>>
>> I used edebug to trace through the execution of notmuch-search in notmuch.el.
>>
>> At line 1096, we have the code
>>
>> (let ((proc (notmuch-start-notmuch
>> "notmuch-search" buffer #'notmuch-search-process-sentinel
>> "search" "--format=sexp" "--format-version=5"
>> (if oldest-first
>> "--sort=oldest-first"
>> "--sort=newest-first")
>> (if hide-excluded
>> "--exclude=true"
>> "--exclude=false")
>> query)))
>>
>> I think the problem is the line
>>
>> (If hide-excluded
>>
>> This is the (optional) argument passed to notmuch-search. If it was not passed, this test fails and “—exclude=false” gets selected. I think we’re testing the wrong variable here. It looks like it should be
>>
>> (If notmuch-search-hide-excluded
>>
>> instead, since this variable is set to its default value if no argument is passed to notmuch-search.
>>
>> [Similarly with the preceding test for oldest-first, I think.]
>>
>>
>>
>>
>>
>>> On Apr 16, 2024, at 3:22 PM, Richard H. Stanton <rhstanton@berkeley.edu> wrote:
>>>
>>> Running
>>>
>>> (notmuch-search "tag:unread" t t)
>>>
>>> gives the correct results, so it looks like notmuch-search-hide-excluded is not getting set to the correct default value.
>>>
>>>> On Apr 16, 2024, at 3:15 PM, Richard H. Stanton <rhstanton@berkeley.edu> wrote:
>>>>
>>>> Oh, wait… It's not working on my office machine either. I’ll start tracing things and see what happens.
>>>>
>>>> By the way,
>>>>
>>>> (notmuch-config-get "search.exclude_tags”)
>>>>
>>>> returns
>>>>
>>>> "spam
>>>> trash"
>>>>
>>>> which is what it should be returning.
>>>>
>>>>> On Apr 16, 2024, at 12:00 PM, Richard H. Stanton <rhstanton@berkeley.edu> wrote:
>>>>>
>>>>> Thanks, David.
>>>>>
>>>>> It all seems to be working fine on my work machine!
>>>>>
>>>>> I can’t decide if that’s good or bad news… I suspect it’ll take me longer to track down what’s going on than if the behavior were consistent on my two machines.
>>>>>
>>>>>> On Apr 16, 2024, at 7:23 AM, David Bremner <david@tethera.net> wrote:
>>>>>>
>>>>>> Richard Stanton <rhstanton@berkeley.edu> writes:
>>>>>>
>>>>>>> I have spam and trash defined as excluded tags for notmuch searches and when I run (at the command line) the command
>>>>>>>
>>>>>>> notmuch search tag:unread
>>>>>>>
>>>>>>> I get a list of unread messages that does *not* include unread spam or trash emails. But when I put the following into my *scratch* buffer and execute it:
>>>>>>>
>>>>>>> (notmuch-search “tag:unread”)
>>>>>>>
>>>>>>> I now get ALL unread messages, including those tagged as spam or trash. Am I missing something?
>>>>>>
>>>>>> Hi Richard;
>>>>>>
>>>>>> As for as I know it _should_ work (modulo the curly quotes being invalid
>>>>>> syntax). I don't have any real hypothesis for what is going wrong, but a
>>>>>> few ideas for gather data.
>>>>>>
>>>>>> 1) As a start, maybe try evaluating
>>>>>>
>>>>>> (notmuch-config-get "search.exclude_tags")
>>>>>>
>>>>>> in emacs and make sure it matches the corresponding
>>>>>>
>>>>>> notmuch config get search.exclude_tags
>>>>>>
>>>>>> 2) If possible, run notmuch with a minimal configuration (i.e. just loading
>>>>>> notmuch, no personal configuration or other packages). There is a script
>>>>>> ./devel/try-emacs-mua in the source if you have a self-built notmuch.
>>>>>
>>>>
>>>
>>
>
\r
next prev parent reply other threads:[~2024-04-17 8:33 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-04-15 17:59 notmuch-search not excluding excluded tags Richard Stanton
2024-04-16 14:23 ` David Bremner
2024-04-16 19:00 ` Richard H. Stanton
2024-04-16 22:15 ` Richard H. Stanton
2024-04-16 22:22 ` Richard H. Stanton
2024-04-16 22:40 ` Richard H. Stanton
2024-04-16 22:53 ` Richard H. Stanton
2024-04-17 8:33 ` Richard Stanton [this message]
2024-05-20 19:24 ` erik colson
2024-05-21 0:51 ` David Bremner
2024-05-21 8:22 ` erik colson
2024-05-21 13:32 ` David Bremner
2024-05-21 16:22 ` richardhstanton
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://notmuchmail.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=13EBA7E9-C099-4147-95E6-C10FCBD63F4C@berkeley.edu \
--to=rhstanton@berkeley.edu \
--cc=david@tethera.net \
--cc=notmuch@notmuchmail.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://yhetil.org/notmuch.git/
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).