On Tue, 07 Aug 2012, Michal Nazarewicz <m...@google.com> wrote: >> On Mon, 06 Aug 2012, Michal Nazarewicz <m...@google.com> wrote: >>> @@ -1374,9 +1382,11 @@ current thread." >>> "Are the headers of the current message visible?" >>> (notmuch-show-get-prop :headers-visible)) >>> >>> -(defun notmuch-show-mark-read () >>> - "Mark the current message as read." >>> - (notmuch-show-tag-message "-unread")) >>> +(defun notmuch-show-mark-read (&optional force) >>> + "Mark the current message as read if FORCE or >>> +`notmuch-show-auto-mark-read' is non-nil." >>> + (when (or force notmuch-show-auto-mark-read) >>> + (notmuch-show-tag-message "-unread"))) > > Mark Walters <markwalters1...@gmail.com> writes: >> As an alternative approach would allowing a list of tags (or even tag >> changes) to apply when a message is "read" do what you want and be more >> flexible? > > Something like the following (not tested)?
Yes this was what I had in mind. I like this (both the symmetry with reply tags and the added flexibility) but I will let others comment. (There is one small bug in your draft: see below) Best wishes Mark > From: Michal Nazarewicz <min...@mina86.com> > Date: Mon, 6 Aug 2012 15:31:20 +0200 > Subject: [PATCH] notmuch-show: add notmuch-show-mark-read-tags option > > 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 | 12 ++++++++++-- > 1 files changed, 10 insertions(+), 2 deletions(-) > > diff --git a/emacs/notmuch-show.el b/emacs/notmuch-show.el > index dcfc190..92a4beb 100644 > --- a/emacs/notmuch-show.el > +++ b/emacs/notmuch-show.el > @@ -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))) This needs to be (apply 'notmuch-show-tag-message ...) > > ;; Functions for getting attributes of several messages in the current > ;; thread. > > -- > Best regards, _ _ > .o. | Liege of Serenely Enlightened Majesty of o' \,=./ `o > ..o | Computer Science, Michał “mina86” Nazarewicz (o o) > ooo +----<email/xmpp: m...@google.com>--------------ooO--(_)--Ooo-- _______________________________________________ notmuch mailing list notmuch@notmuchmail.org http://notmuchmail.org/mailman/listinfo/notmuch