notmuch-show-stash-mlarchive-link-alist))
:group 'notmuch-show)
+(defcustom notmuch-show-mark-read-tags '("-unread")
+ "List of tags to apply when message is read, ie. shown in notmuch-show
+buffer."
+ :type '(repeat string)
+ :group 'notmuch-show)
+
+
(defmacro with-current-notmuch-show-message (&rest body)
"Evaluate body with current buffer set to the text of current message"
`(save-excursion
(notmuch-show-get-prop :headers-visible))
(defun notmuch-show-mark-read ()
- "Mark the current message as read."
- (notmuch-show-tag-message "-unread"))
+ "Apply `notmuch-show-mark-read-tags' to the message."
+ (when notmuch-show-mark-read-tags
+ (apply 'notmuch-show-tag-message notmuch-show-mark-read-tags)))
;; Functions for getting attributes of several messages in the current
;; thread.
(goto-char (point-max)))))
(defun notmuch-show-previous-message ()
- "Show the previous message."
+ "Show the previous message or the start of the current message."
(interactive)
- (notmuch-show-goto-message-previous)
+ (if (= (point) (notmuch-show-message-top))
+ (notmuch-show-goto-message-previous)
+ (notmuch-show-move-to-message-top))
(notmuch-show-mark-read)
(notmuch-show-message-adjust))
(defun notmuch-show-previous-open-message ()
"Show the previous open message."
(interactive)
- (while (and (notmuch-show-goto-message-previous)
+ (while (and (if (= (point) (notmuch-show-message-top))
+ (notmuch-show-goto-message-previous)
+ (notmuch-show-move-to-message-top))
(not (notmuch-show-message-visible-p))))
(notmuch-show-mark-read)
(notmuch-show-message-adjust))
(let (shell-command)
(if entire-thread
(setq shell-command
- (concat notmuch-command " show --format=mbox "
+ (concat notmuch-command " show --format=mbox --exclude=false "
(shell-quote-argument
(mapconcat 'identity (notmuch-show-get-message-ids-for-open-messages) " OR "))
" | " command))