emacs: add notmuch-show-worker function for specifying crypto processing directly

The main reason to introduce this new unexposed function is to allow
the buffer redisplay crypto switch to behaving in a more expected way.
The prefix to notmuch-show-redisplay buffer now switches the crypto
processing of the current show buffer, as opposed to switching the
logic of the notmuch-crypto-process-mime customization variable.  This
behavior is more intuitive.
This commit is contained in:
Jameson Graef Rollins 2011-11-13 11:15:21 -08:00 committed by David Bremner
parent b00e27bd99
commit edd2f3f0a8

View file

@ -830,13 +830,16 @@ The optional CRYPTO-SWITCH toggles the value of the
notmuch-crypto-process-mime customization variable for this show
buffer."
(interactive "sNotmuch show: ")
(let* ((process-crypto (if crypto-switch
(not notmuch-crypto-process-mime)
notmuch-crypto-process-mime)))
(notmuch-show-worker thread-id parent-buffer query-context buffer-name process-crypto)))
(defun notmuch-show-worker (thread-id parent-buffer query-context buffer-name process-crypto)
(let* ((buffer-name (generate-new-buffer-name
(or buffer-name
(concat "*notmuch-" thread-id "*"))))
(buffer (get-buffer-create buffer-name))
(process-crypto (if crypto-switch
(not notmuch-crypto-process-mime)
notmuch-crypto-process-mime))
(inhibit-read-only t))
(switch-to-buffer buffer)
(notmuch-show-mode)
@ -882,16 +885,17 @@ buffer."
"Refresh the current view (with crypto switch if prefix given).
Kills the current buffer and reruns notmuch show with the same
thread id. If a prefix is given, the current thread is
redisplayed with the crypto switch activated, which switch the
logic of the notmuch-crypto-process-mime customization variable."
thread id. If a prefix is given, crypto processing is toggled."
(interactive "P")
(let ((thread-id notmuch-show-thread-id)
(parent-buffer notmuch-show-parent-buffer)
(query-context notmuch-show-query-context)
(buffer-name notmuch-show-buffer-name))
(buffer-name notmuch-show-buffer-name)
(process-crypto (if crypto-switch
(not notmuch-show-process-crypto)
notmuch-show-process-crypto)))
(notmuch-kill-this-buffer)
(notmuch-show thread-id parent-buffer query-context buffer-name crypto-switch)))
(notmuch-show-worker thread-id parent-buffer query-context buffer-name process-crypto)))
(defvar notmuch-show-stash-map
(let ((map (make-sparse-keymap)))