[PATCH 2/2] emacs: add notmuch-show-worker function for specifying crypto processing directly

Jameson Graef Rollins jrollins at finestructure.net
Sun Nov 13 11:15:21 PST 2011


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.
---
 emacs/notmuch-show.el |   20 ++++++++++++--------
 1 files changed, 12 insertions(+), 8 deletions(-)

diff --git a/emacs/notmuch-show.el b/emacs/notmuch-show.el
index 95af32a..d5c95d8 100644
--- a/emacs/notmuch-show.el
+++ b/emacs/notmuch-show.el
@@ -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)))
-- 
1.7.7.1



More information about the notmuch mailing list