diff options
author | Leo <sourcehut@relevant-information.com> | 2021-12-21 20:15:27 +0100 |
---|---|---|
committer | Kyle Meyer <kyle@kyleam.com> | 2021-12-24 13:09:23 -0500 |
commit | 955abe41dc76d5a2bcddfc38c1267f9857660a35 (patch) | |
tree | e1b41b38ac9b21443475659e43328a983e12e0ed | |
parent | 3e5535304519c31453ec12037fcd33a4b4095a51 (diff) | |
download | piem-955abe41dc76d5a2bcddfc38c1267f9857660a35.tar.gz |
Add user option for specifying path to notmuch-extract-patch
`notmuch-extract-patch` might not be available on PATH. This can be the
case if the package wasn't installed through the distro package manager.
[km] Added package-version keyword, and dropped if-let binding.
Message-Id: <20211221191527.11819-1-sourcehut@relevant-information.com>
-rw-r--r-- | piem-notmuch.el | 41 |
1 files changed, 23 insertions, 18 deletions
diff --git a/piem-notmuch.el b/piem-notmuch.el index b48cf70..71d56f7 100644 --- a/piem-notmuch.el +++ b/piem-notmuch.el @@ -38,6 +38,11 @@ "Notmuch integration for piem." :group 'piem) +(defcustom piem-notmuch-extract-patch-executable "notmuch-extract-patch" + "Which notmuch-extract-patch executable to use." + :package-version '(piem . "0.4.0") + :type 'string) + (defmacro piem-notmuch--with-current-message (&rest body) (declare (indent 0) (debug (body))) (let ((rv (make-symbol "rv"))) @@ -118,25 +123,25 @@ notmuch thread." (= (notmuch-count-attachments (piem-notmuch--with-current-message (mm-dissect-buffer))) 0)) - (let ((thread-id notmuch-show-thread-id)) + (let* ((thread-id + (or notmuch-show-thread-id + (error "bug: notmuch-show-thread-id unexpectedly nil"))) + (tid + ;; Copied from mailscripts.el + ;; + ;; If `notmuch-show' was called with a notmuch query rather + ;; than a thread ID, as `org-notmuch-follow-link' in + ;; org-notmuch.el does, then `notmuch-show-thread-id' might + ;; be an arbitrary notmuch query instead of a thread ID. We + ;; need to wrap such a query in thread:{} before passing it + ;; to notmuch-extract-patch(1), or we might not get a whole + ;; thread extracted (e.g. if the query is just id:foo) + (if (string= (substring thread-id 0 7) "thread:") + thread-id + (concat "thread:{" thread-id "}")))) (lambda () - (if-let ((cmd (executable-find "notmuch-extract-patch")) - (tid - ;; Copied from mailscripts.el - ;; - ;; If `notmuch-show' was called with a notmuch query rather - ;; than a thread ID, as `org-notmuch-follow-link' in - ;; org-notmuch.el does, then `notmuch-show-thread-id' might - ;; be an arbitrary notmuch query instead of a thread ID. We - ;; need to wrap such a query in thread:{} before passing it - ;; to notmuch-extract-patch(1), or we might not get a whole - ;; thread extracted (e.g. if the query is just id:foo) - (if (string= (substring thread-id 0 7) "thread:") - thread-id - (concat "thread:{" thread-id "}")))) - (call-process cmd nil t nil - tid) - (user-error "The executable notmuch-extract-patch was not found")))))) + (call-process piem-notmuch-extract-patch-executable nil t nil + tid))))) (defun piem-notmuch-show-get-public-inbox-link (mid) "Given the message-id MID, return the public-inbox url. |