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