emacs: show: use interactive instead of current-prefix-arg
authorMark Walters <markwalters1009@gmail.com>
Sun, 13 Oct 2013 07:39:12 +0000 (08:39 +0100)
committerDavid Bremner <bremner@debian.org>
Sun, 20 Oct 2013 01:42:49 +0000 (22:42 -0300)
Currently notmuch-show looks at the prefix-arg directly via
current-prefix-arg. This changes it to use the interactive
specification.

One test (for elide-toggle functionality) set the prefix arg
directly. Update this test to set the new argument directly.

emacs/notmuch-show.el
emacs/notmuch.el
test/emacs-show

index 7325792be71f99dde301e7020b507b91e833200a..8ba81676f10245ee0f5d6a2b1539a14340df902b 100644 (file)
@@ -1080,15 +1080,17 @@ buttons for a corresponding notmuch search."
        (make-text-button (first link) (second link)
                          :type 'notmuch-button-type
                          'action `(lambda (arg)
-                                    (notmuch-show ,(third link)))
+                                    (notmuch-show ,(third link) current-prefix-arg))
                          'follow-link t
                          'help-echo "Mouse-1, RET: search for this message"
                          'face goto-address-mail-face)))))
 
 ;;;###autoload
-(defun notmuch-show (thread-id &optional parent-buffer query-context buffer-name)
+(defun notmuch-show (thread-id &optional elide-toggle parent-buffer query-context buffer-name)
   "Run \"notmuch show\" with the given thread ID and display results.
 
+ELIDE-TOGGLE, if non-nil, inverts the default elide behavior.
+
 The optional PARENT-BUFFER is the notmuch-search buffer from
 which this notmuch-show command was executed, (so that the
 next thread from that buffer can be show when done with this
@@ -1102,7 +1104,7 @@ The optional BUFFER-NAME provides the name of the buffer in
 which the message thread is shown. If it is nil (which occurs
 when the command is called interactively) the argument to the
 function is used."
-  (interactive "sNotmuch show: ")
+  (interactive "sNotmuch show: \nP")
   (let ((buffer-name (generate-new-buffer-name
                      (or buffer-name
                          (concat "*notmuch-" thread-id "*")))))
@@ -1112,9 +1114,9 @@ function is used."
     (setq notmuch-show-process-crypto notmuch-crypto-process-mime)
     ;; Set the default value for
     ;; `notmuch-show-elide-non-matching-messages' in this buffer. If
-    ;; there is a prefix argument, invert the default.
+    ;; elide-toggle is set, invert the default.
     (setq notmuch-show-elide-non-matching-messages notmuch-show-only-matching-messages)
-    (if current-prefix-arg
+    (if elide-toggle
        (setq notmuch-show-elide-non-matching-messages (not notmuch-show-elide-non-matching-messages)))
 
     (setq notmuch-show-thread-id thread-id
index c47c6b56854fe59eabd9ecc40b1445242e5c38a0..1e53f5092391c350d53589b10494852c6d648fd6 100644 (file)
@@ -510,13 +510,14 @@ If BARE is set then do not prefix with \"thread:\""
   "Return a list of authors for the current region"
   (notmuch-search-properties-in-region :subject beg end))
 
-(defun notmuch-search-show-thread ()
+(defun notmuch-search-show-thread (&optional elide-toggle)
   "Display the currently selected thread."
-  (interactive)
+  (interactive "P")
   (let ((thread-id (notmuch-search-find-thread-id))
        (subject (notmuch-search-find-subject)))
     (if (> (length thread-id) 0)
        (notmuch-show thread-id
+                     elide-toggle
                      (current-buffer)
                      notmuch-search-query-string
                      ;; Name the buffer based on the subject.
index ae70053a6fb7aad80354268b5f5583e8ed846cee..fb23db4d1dfda8a69931517891f38db533550594 100755 (executable)
@@ -91,8 +91,7 @@ test_begin_subtest "notmuch-show: elide non-matching messages (w/ prefix arg to
 test_emacs '(let ((notmuch-show-only-matching-messages nil))
        (notmuch-search "from:lars@seas.harvard.edu and subject:\"Maildir storage\"")
        (notmuch-test-wait)
-       (let ((current-prefix-arg t))
-         (notmuch-search-show-thread))
+       (notmuch-search-show-thread t)
        (notmuch-test-wait)
        (test-visible-output))'
 test_expect_equal_file OUTPUT $EXPECTED/notmuch-show-elide-non-matching-messages-on