From: Eric Abrahamsen <eric@ericabrahamsen.net>
To: info-gnus-english@gnu.org
Subject: Re: gnus-search-engine set to gnus-search-notmuch and refer threads
Date: Wed, 22 Dec 2021 16:30:16 -0800 [thread overview]
Message-ID: <87v8zg6u3r.fsf@ericabrahamsen.net> (raw)
In-Reply-To: <87zgos9rbv.fsf@gnus.jao.io>
"Jose A. Ortega Ruiz" <jao@gnu.org> writes:
> On Wed, Dec 22 2021, Eric Abrahamsen wrote:
>
> [...]
>
>> My guess is that we need to go to point-min right here.
>>
>>> (while (re-search-forward "^thread:\\([^ ]+\\)" (point-max) t)
>>> (push (match-string 1) thread-ids))
>>> (cl-call-next-method
>>> engine server
>>> ;; Completely replace the query with our new thread-based one.
>>> (mapconcat (lambda (thrd) (concat "thread:" thrd))
>>> thread-ids " or ")
>>> nil)))
>>> (cl-call-next-method engine server query groups)))
>
> it's not enough. before that, there's a problem with invoking the
> search for threads, because notmuch is passed the flag --duplicate=1,
> and that's not accepted for format thread:
>
> Error: --duplicate=N is only supported with --output=files and --output=messages.
>
> funny thing is that that flag is added for no apparent reason in line
> 1633 of gnus-search.el:
>
> "--duplicate=1" ; I have found this necessary, I don't know why.
Hmm, I inherited this code, and didn't know why it was necessary either,
so I didn't take it out. I think notmuch can return multiple search
results if the same message exists in multiple folders, but since we're
filtering folders to begin with, maybe we don't need this.
> i don't know why either because searches seem to work without it :).
> if one eliminates that flag and adds your suggested (goto-char
> (point-min)) we are not out the woods yet: the thread id is read, but
> including an eol, so one needs
>
> (while (re-search-forward "^thread:\\([^\n ]+\\)" (point-max) t)
> ^^^^
Obviously I was hoping this would Just Work™ without me having to
actually install notmuch and test it.
> and then, we still fail, because that leads, somehow to an error of the
> form:
>
> Debugger entered--Lisp error: (wrong-type-argument listp "thread:000000000001a830")
> alist-get(parsed-query "thread:000000000001a830")
> #f(compiled-function (engine query-spec) #<bytecode 0x1fd1b560df8c2360>)(#<gnus-search-notmuch gnus-search-notmuch-157d5a02af62> "thread:000000000001a830")
> apply(#f(compiled-function (engine query-spec) #<bytecode 0x1fd1b560df8c2360>) #<gnus-search-notmuch gnus-search-notmuch-157d5a02af62> "thread:000000000001a830")
> gnus-search-make-query-string(#<gnus-search-notmuch gnus-search-notmuch-157d5a02af62> "thread:000000000001a830")
>
> which indicates that the notmuch method for
> gnus-search-make-query-string is buggy: it doesn't know how to parse
> "thread:000000000001a830" queries... and here i ran out of steam, but
> the fix seems nearby :)
You have done heroic work, and I hope it may yet be unnecessary for me
to install and configure notmuch. Telling notmuch what to do with
"thread:xxx" queries is not difficult, and I should have a solution for
this in the next day or so.
Thanks for the extensive debugging,
Eric
next prev parent reply other threads:[~2021-12-23 0:30 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <87lf1k11ed.fsf@onenetbeyond.org>
2021-11-19 19:05 ` jao
2021-12-14 21:41 ` dal-blazej
2021-12-15 17:41 ` Eric Abrahamsen
2021-12-18 23:22 ` dal-blazej
2021-12-21 5:56 ` Andrew Cohen
2021-12-22 20:56 ` Jose A. Ortega Ruiz
2021-12-22 21:16 ` Eric Abrahamsen
2021-12-22 21:19 ` Eric Abrahamsen
2021-12-22 23:01 ` Jose A. Ortega Ruiz
2021-12-23 0:30 ` Eric Abrahamsen [this message]
2021-12-23 3:34 ` Jose A. Ortega Ruiz
2021-12-23 20:55 ` Eric Abrahamsen
2021-12-24 3:08 ` Jose A. Ortega Ruiz
2021-12-27 21:54 ` Jose A. Ortega Ruiz
2021-12-30 23:51 ` Eric Abrahamsen
2021-12-31 0:07 ` Andrew Cohen
2021-12-31 0:20 ` Eric Abrahamsen
2021-12-31 0:37 ` Andrew Cohen
2021-12-31 1:13 ` Eric Abrahamsen
2021-12-31 2:57 ` Jose A. Ortega Ruiz
2021-12-31 1:39 ` jao
2022-02-17 21:11 ` Eric Abrahamsen
2022-02-18 0:22 ` Andrew Cohen
2022-02-18 7:36 ` Eric Abrahamsen
2022-02-18 1:20 Eric Abrahamsen
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
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87v8zg6u3r.fsf@ericabrahamsen.net \
--to=eric@ericabrahamsen.net \
--cc=info-gnus-english@gnu.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.
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 NNTP newsgroup(s).