From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sean Whitton Subject: Re: Bug: ol-notmuch.el: calls `notmuch-show' with arbitrary search query Date: Tue, 26 Nov 2019 10:41:51 -0700 Message-ID: <87y2w21qn4.fsf@iris.silentflame.com> References: <87h82wrjvb.fsf@iris.silentflame.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <87h82wrjvb.fsf-TDhmT+1V6bdypu2/aTzxt1aTQe2KTcn/@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: notmuch-bounces-gxuj+Tv9EO5zyzON3hdc1g@public.gmane.org Sender: "notmuch" To: emacs-orgmode-mXXj517/zsQ@public.gmane.org, Matthieu Lemerre Cc: notmuch-gxuj+Tv9EO5zyzON3hdc1g@public.gmane.org List-Id: emacs-orgmode.gnu.org 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