Hi,

> 
> Here is my workaround.  If this approach seems sensible I can prepare a
> patch to `org-notmuch-follow-link` in ol-notmuch.el.

Your approach probably works most of the time, but I don't like the idea 
of having to perform 2 queries when one should be enough.

I think a better approach would be to change notmuch-show (or add a new 
version) that would
allow taking arbitrary queries (and especially, message ids) as input. This 
probably used to be the case.

Note that the command line notmuch show function does accept arbitrary search 
terms as an argument

I think updating notmuch-show to compute the thread id from the query (instead 
of assuming that the input is
a thread id) would be the best way to go, but you should see that with the 
notmuch developers.

Best regards
Matthieu Lemerre


> 
>    (use-package org-notmuch
>      :init
>      ;; the default value for `org-notmuch-open-function' is
>      ;; `org-notmuch-follow-link', but that function is broken: it calls
>      ;; `notmuch-show' with a search query rather than a thread ID.  This
>      ;; causes `notmuch-show-thread-id' to be populated with a value
>      ;; which is not a thread ID, which breaks various other things
>      ;;
>      ;; so use a custom function instead
>      (defun spw--org-notmuch-follow-link (search)
>        (let ((thread-id
>               (substring
>                (shell-command-to-string
>                 (combine-and-quote-strings (list "notmuch" "search"
>                                                  "--output=threads" 
> "--limit=1"
>                                                  "--format=text"
>                                                  "--format-version=4" 
> search)))
>                0 -1)))
>          (notmuch-show thread-id nil nil search search)))
>      (setq org-notmuch-open-function 'spw--org-notmuch-follow-link))
> 
> --
> Sean Whitton

Reply via email to