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 <[email protected]>
> 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 <[email protected]>
>> 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 <[email protected]>
>>> 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 <[email protected]> wrote:
>>>>
>>>> Richard Stanton <[email protected]> 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.
>>>
>>
>
_______________________________________________
notmuch mailing list -- [email protected]
To unsubscribe send an email to [email protected]