X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=emacs%2Fnotmuch-lib.el;h=a09f4ab8f27bb3a8e5684ef3b8f524bc4c32b7f0;hb=b97cd90040a8353e6f94c317af2020f3d6e67a2e;hp=1e631d0eb0147a19da00bed2f8af6dbd3dff1dcf;hpb=294c0737b335e52d95584aacd604a0fbbf199611;p=notmuch diff --git a/emacs/notmuch-lib.el b/emacs/notmuch-lib.el index 1e631d0e..a09f4ab8 100644 --- a/emacs/notmuch-lib.el +++ b/emacs/notmuch-lib.el @@ -703,6 +703,7 @@ current buffer, if possible." (when (mm-inlinable-p handle) (set-buffer display-buffer) (mm-display-part handle) + (plist-put part :undisplayer (mm-handle-undisplayer handle)) t)))))) ;;; Generic Utilities @@ -1029,6 +1030,20 @@ status." (defvar-local notmuch-show-process-crypto nil) +(defun notmuch--run-show (search-terms &optional duplicate) + "Return a list of threads of messages matching SEARCH-TERMS. + +A thread is a forest or list of trees. A tree is a two element +list where the first element is a message, and the second element +is a possibly empty forest of replies." + (let ((args '("show" "--format=sexp" "--format-version=5"))) + (when notmuch-show-process-crypto + (setq args (append args '("--decrypt=true")))) + (when duplicate + (setq args (append args (list (format "--duplicate=%d" duplicate))))) + (setq args (append args search-terms)) + (apply #'notmuch-call-notmuch-sexp args))) + ;;; Generic Utilities (defun notmuch-interactive-region ()