emacs: show: use interactive instead of current-prefix-arg

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.
This commit is contained in:
Mark Walters 2013-10-13 08:39:12 +01:00 committed by David Bremner
parent 10596a5cce
commit 99d474c484
3 changed files with 11 additions and 9 deletions

View file

@ -1080,15 +1080,17 @@ buttons for a corresponding notmuch search."
(make-text-button (first link) (second link) (make-text-button (first link) (second link)
:type 'notmuch-button-type :type 'notmuch-button-type
'action `(lambda (arg) 'action `(lambda (arg)
(notmuch-show ,(third link))) (notmuch-show ,(third link) current-prefix-arg))
'follow-link t 'follow-link t
'help-echo "Mouse-1, RET: search for this message" 'help-echo "Mouse-1, RET: search for this message"
'face goto-address-mail-face))))) 'face goto-address-mail-face)))))
;;;###autoload ;;;###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. "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 The optional PARENT-BUFFER is the notmuch-search buffer from
which this notmuch-show command was executed, (so that the which this notmuch-show command was executed, (so that the
next thread from that buffer can be show when done with this 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 which the message thread is shown. If it is nil (which occurs
when the command is called interactively) the argument to the when the command is called interactively) the argument to the
function is used." function is used."
(interactive "sNotmuch show: ") (interactive "sNotmuch show: \nP")
(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 "*")))))
@ -1112,9 +1114,9 @@ function is used."
(setq notmuch-show-process-crypto notmuch-crypto-process-mime) (setq notmuch-show-process-crypto notmuch-crypto-process-mime)
;; Set the default value for ;; Set the default value for
;; `notmuch-show-elide-non-matching-messages' in this buffer. If ;; `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) (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-elide-non-matching-messages (not notmuch-show-elide-non-matching-messages)))
(setq notmuch-show-thread-id thread-id (setq notmuch-show-thread-id thread-id

View file

@ -510,13 +510,14 @@ If BARE is set then do not prefix with \"thread:\""
"Return a list of authors for the current region" "Return a list of authors for the current region"
(notmuch-search-properties-in-region :subject beg end)) (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." "Display the currently selected thread."
(interactive) (interactive "P")
(let ((thread-id (notmuch-search-find-thread-id)) (let ((thread-id (notmuch-search-find-thread-id))
(subject (notmuch-search-find-subject))) (subject (notmuch-search-find-subject)))
(if (> (length thread-id) 0) (if (> (length thread-id) 0)
(notmuch-show thread-id (notmuch-show thread-id
elide-toggle
(current-buffer) (current-buffer)
notmuch-search-query-string notmuch-search-query-string
;; Name the buffer based on the subject. ;; Name the buffer based on the subject.

View file

@ -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)) test_emacs '(let ((notmuch-show-only-matching-messages nil))
(notmuch-search "from:lars@seas.harvard.edu and subject:\"Maildir storage\"") (notmuch-search "from:lars@seas.harvard.edu and subject:\"Maildir storage\"")
(notmuch-test-wait) (notmuch-test-wait)
(let ((current-prefix-arg t)) (notmuch-search-show-thread t)
(notmuch-search-show-thread))
(notmuch-test-wait) (notmuch-test-wait)
(test-visible-output))' (test-visible-output))'
test_expect_equal_file OUTPUT $EXPECTED/notmuch-show-elide-non-matching-messages-on test_expect_equal_file OUTPUT $EXPECTED/notmuch-show-elide-non-matching-messages-on