unofficial mirror of notmuch@notmuchmail.org
 help / color / mirror / code / Atom feed
From: Sean Whitton <spwhitton@spwhitton.name>
To: emacs-orgmode@gnu.org, Matthieu Lemerre <racin@free.fr>
Cc: notmuch@notmuchmail.org
Subject: Re: Bug: ol-notmuch.el: calls `notmuch-show' with arbitrary search query
Date: Tue, 26 Nov 2019 10:41:51 -0700	[thread overview]
Message-ID: <87y2w21qn4.fsf@iris.silentflame.com> (raw)
In-Reply-To: <87h82wrjvb.fsf@iris.silentflame.com>

Dear maintainers,

On Thu 21 Nov 2019 at 02:37PM -07, Sean Whitton wrote:

> The function `org-notmuch-follow-link' in {org,ol}-notmuch.el calls
> `notmuch-show' with an arbitrary notmuch search query.  However, the
> docstring for `notmuch-show' specifies that a notmuch thread ID, rather
> than an arbitrary notmuch query, should be supplied to `notmuch-show'.
>
> The effect of this is that the variable `notmuch-show-thread-id' may
> contain an arbitrary search query rather than a thread ID.  That broke
> some code of mine which uses that variable.
>
> `org-notmuch-follow-link' needs to continue to accept an arbitrary query
> (as notmuch thread IDs are not stable), but it should convert it to a
> thread ID before passing it to `notmuch-show'.

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

    (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	other threads:[~2019-11-26 17:41 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-11-21 21:37 Bug: ol-notmuch.el: calls `notmuch-show' with arbitrary search query Sean Whitton
2019-11-26 17:41 ` Sean Whitton [this message]
2019-11-26 19:17   ` racin
2019-11-26 21:52     ` Sean Whitton
2019-11-26 20:05 ` David Edmondson
2019-11-26 21:57   ` Sean Whitton
2019-11-26 22:52     ` David Edmondson
2019-11-26 23:25       ` Sean Whitton
2019-11-27 13:08         ` David Edmondson
2019-11-27 17:42           ` Sean Whitton
2019-11-27 20:52             ` David Edmondson
2019-11-29 20:01               ` Sean Whitton
2019-12-01 21:01                 ` David Edmondson
2020-02-29 16:50                   ` Sean Whitton

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

  List information: https://notmuchmail.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87y2w21qn4.fsf@iris.silentflame.com \
    --to=spwhitton@spwhitton.name \
    --cc=emacs-orgmode@gnu.org \
    --cc=notmuch@notmuchmail.org \
    --cc=racin@free.fr \
    /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.
Code repositories for project(s) associated with this public inbox

	https://yhetil.org/notmuch.git/

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 read-only IMAP folder(s) and NNTP newsgroup(s).