notmuch-show: add notmuch-show-mark-read-tags option
authorMichal Nazarewicz <mina86@mina86.com>
Tue, 21 Aug 2012 13:13:36 +0000 (15:13 +0200)
committerDavid Bremner <bremner@debian.org>
Wed, 29 Aug 2012 22:01:10 +0000 (19:01 -0300)
The `notmuch-show-mark-read-tags' lists tags that are to be applied when
message is read.  By default, the only value is "-unread" which will remove
the unread tag.  Among other uses, this variable can be used to stop
notmuch-show from modifying tags when message is shown (by setting the
variable to an empty list).

emacs/notmuch-show.el

index 82b5399c499fac18e444e45a279756288717e004..c9fd867a909d1064eb847fe4e5cc33b7487e38c3 100644 (file)
@@ -183,6 +183,13 @@ provided with an MLA argument nor `completing-read' input."
             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
@@ -1383,8 +1390,9 @@ current thread."
   (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.