Bug? notmuch-emacs: "All tags" in notmuch-hello does not show all tags

Tomi Ollila tomi.ollila at iki.fi
Sun Apr 22 01:52:17 PDT 2018


On Sun, Apr 22 2018, Gregor Zattler wrote:

> Hi Tomi, notmuch-emacs developers,
> * Tomi Ollila <tomi.ollila at iki.fi> [2018-04-21; 20:38]:
> [...]
>> That doesn't mean there could not be a bug there, just
>> that I cannot reproduce it...
>
> Thanks for your investigation.
>
> I now prepared a minimal example, please extract the archive in
> /tmp.  It contains a quite minmalistic .notmuch-config, a Maildir
> with one email and a test script which runs notmuch new, notmuch
> tag, starts emacs with no configuration and hopefully shows
> notmuch-hello.[1] Please klick on "show", you'll see only one
> tag: "spam", klick on "spam" you'll see this one email shown with
> its four (!) tags: "inbox", "new" and "certaintag" are not shown
> in "All tags".
>
> At least this is what I see with emacs25 and emacs27 and current
> notmuch.
>
> Do you see the same?


Yes, I can reproduce -- only "spam" is seen

To look what happened I ran (in notmuch source dir):

$ NOTMUCH_CONFIG=/tmp/.notmuch-config strace -f -e trace=execve,read,write -o ttt ./devel/try-emacs-mua -Q

based on that output:

$ NOTMUCH_CONFIG=/tmp/.notmuch-config notmuch search --output=tags '*'
certaintag
inbox
new
spam

$ NOTMUCH_CONFIG=/tmp/.notmuch-config notmuch count --batch
tag:certaintag
0
tag:new
0
tag:spam
1
tag:inbox
0
tag:foobar
0

NOTMUCH_CONFIG=/tmp/.notmuch-config notmuch count --batch --exclude=false
tag:certaintag
1
tag:new
1
tag:spam
1
tag:inbox
1

1
tag:foobar
0

So, currently, whenever count is zero, the tag is now shown in all tags
listing (but we know we have the tag since queried earlier). But, at least
in this case we should get real count and have that '--exclude=false' there,
and then the count is always positive number.

At least some SMOP is required to get this fixed.

Tomi

>
>
> Thanks for investing time in this issue.  Regards, gregor
>
> [1] The script tries to guess your notmuch/emacs source path as
> load-path for emacs.  If this fails please edit the emacs
> invocation according to your local setup
> [database]
> path=/tmp/Mail
>
> [user]
> name=Test User
> primary_email=test at example.org
> other_email=
>
> [new]
> tags=new;unread;inbox;
>
> [search]
> exclude_tags=deleted;spam;
>
> [maildir]
> synchronize_flags=true
>
> From: test at example.org
> To: test at example.org
> Subject: test single tag and tag +spam
> Message-ID: <test23 at example.com>
>
> Look an email!
> #!/bin/bash
>
> export NOTMUCH_CONFIG=/tmp/.notmuch-config
> notmuch new
> notmuch tag +spam +certaintag -- mid:test23 at example.com
> emacs -L "$(locate notmuch/emacs/notmuch.el | head -n 1 | sed -e 's/notmuch.el//')" -Q --eval "(require 'notmuch)" -f notmuch-hello


More information about the notmuch mailing list