[PATCH 4/6] emacs: add support for custom tag changes on message/thread archive
Michal Nazarewicz
mina86 at mina86.com
Mon Sep 3 04:39:56 PDT 2012
Jani Nikula <jani at 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 at google.com>--------------ooO--(_)--Ooo--
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 835 bytes
Desc: not available
URL: <http://notmuchmail.org/pipermail/notmuch/attachments/20120903/705a8d1a/attachment-0001.pgp>
More information about the notmuch
mailing list