info-gnus-english
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: gnus-search-engine set to gnus-search-notmuch and refer threads


From: Jose A. Ortega Ruiz
Subject: Re: gnus-search-engine set to gnus-search-notmuch and refer threads
Date: Wed, 22 Dec 2021 23:01:56 +0000
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux)

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.

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)
                                         ^^^^

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 :)

hth,
jao




reply via email to

[Prev in Thread] Current Thread [Next in Thread]