Code looks good. Two minor comments below. Quoth Mark Walters on Oct 09 at 9:01 pm: > Currently notmuch-show looks at the prefix-arg directly via > current-prefix-arg. This changes it to use the interactive > specification. > --- > emacs/notmuch-show.el | 12 +++++++----- > emacs/notmuch.el | 5 +++-- > 2 files changed, 10 insertions(+), 7 deletions(-) > > diff --git a/emacs/notmuch-show.el b/emacs/notmuch-show.el > index 5d7e24b..15f9ce6 100644 > --- a/emacs/notmuch-show.el > +++ b/emacs/notmuch-show.el > @@ -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)) Hmm. Does this work? Can you activate the button with C-u RET? > '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. > > +The optional ELIDE-TOGGLE inverts the default elide behaviour. "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 > diff --git a/emacs/notmuch.el b/emacs/notmuch.el > index 0ff248b..7124d0a 100644 > --- a/emacs/notmuch.el > +++ b/emacs/notmuch.el > @@ -486,13 +486,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.