Jani Nikula <jani@nikula.org> writes: > Add support for customization of the tag changes that are applied when > a message or a thread is archived. Instead of hard-coded removal of > the "inbox" tag, the user can now specify a list of tag changes to > perform. > diff --git a/emacs/notmuch-show.el b/emacs/notmuch-show.el > index ce5ea6f..e701aec 100644 > --- a/emacs/notmuch-show.el > +++ b/emacs/notmuch-show.el > @@ -1748,18 +1748,20 @@ argument, hide all of the messages." > (defun notmuch-show-archive-thread (&optional unarchive) > "Archive each message in thread. > > -Archive each message currently shown by removing the \"inbox\" > -tag from each. If a prefix argument is given, the messages will > -be \"unarchived\" (ie. the \"inbox\" tag will be added instead of > -removed). > +Archive each message currently shown by applying the tag changes > +in `notmuch-archive-tags' to each (remove the \"inbox\" tag by > +default). If a prefix argument is given, the messages will be > +\"unarchived\", i.e. the tag changes in `notmuch-archive-tags' > +will be reversed. > > Note: This command is safe from any race condition of new messages > being delivered to the same thread. It does not archive the > entire thread, but only the messages shown in the current > buffer." > (interactive "P") > - (let ((op (if unarchive "+" "-"))) > - (notmuch-show-tag-all (concat op "inbox")))) > + (when notmuch-archive-tags Strictly speaking (when) should not be needed here (an in the following changes). Or is it? > + (notmuch-show-tag-all > + (notmuch-tag-change-list notmuch-archive-tags unarchive)))) > > (defun notmuch-show-archive-thread-then-next () > "Archive all messages in the current buffer, then show next thread from search." > @@ -1774,14 +1776,17 @@ buffer." > (notmuch-show-next-thread)) > > (defun notmuch-show-archive-message (&optional unarchive) > - "Archive the current message (remove \"inbox\" tag). > + "Archive the current message. > > -If a prefix argument is given, the message will be > -\"unarchived\" (ie. the \"inbox\" tag will be added instead of > -removed)." > +Archive the current message by applying the tag changes in > +`notmuch-archive-tags' to it (remove the \"inbox\" tag by > +default). If a prefix argument is given, the message will be > +\"unarchived\", i.e. the tag changes in `notmuch-archive-tags' > +will be reversed." > (interactive "P") > - (let ((op (if unarchive "+" "-"))) > - (notmuch-show-tag-message (concat op "inbox")))) > + (when notmuch-archive-tags > + (apply 'notmuch-show-tag-message > + (notmuch-tag-change-list notmuch-archive-tags unarchive)))) > > (defun notmuch-show-archive-message-then-next-or-exit () > "Archive the current message, then show the next open message in the current thread. > diff --git a/emacs/notmuch.el b/emacs/notmuch.el > index 1c43d3e..64caa3e 100644 > --- a/emacs/notmuch.el > +++ b/emacs/notmuch.el > @@ -594,11 +594,19 @@ See `notmuch-tag' for information on the format of TAG-CHANGES." > (notmuch-search-tag "-")) > > (defun notmuch-search-archive-thread () > - "Archive the currently selected thread (remove its \"inbox\" tag). > + "Archive the currently selected thread. > + > +Archive each message in the currently selected thread by applying > +the tag changes in `notmuch-archive-tags' to each (remove the > +\"inbox\" tag by default). If a prefix argument is given, the > +messages will be \"unarchived\" (i.e. the tag changes in > +`notmuch-archive-tags' will be reversed). > > This function advances the next thread when finished." > (interactive) > - (notmuch-search-tag '("-inbox")) > + (when notmuch-archive-tags > + (notmuch-search-tag > + (notmuch-tag-change-list notmuch-archive-tags))) > (notmuch-search-next-thread)) > > (defun notmuch-search-update-result (result &optional pos) > -- > 1.7.9.5 > -- Best regards, _ _ .o. | Liege of Serenely Enlightened Majesty of o' \,=./ `o ..o | Computer Science, Michał “mina86” Nazarewicz (o o) ooo +----<email/xmpp: mpn@google.com>--------------ooO--(_)--Ooo--