On Mon, 03 Sep 2012, Michal Nazarewicz <mina86@mina86.com> wrote: > Jani Nikula <jani@nikula.org> writes: >> Add a helper to create (and optionally reverse) a list of tag changes. >> --- >> emacs/notmuch-tag.el | 17 +++++++++++++++++ >> 1 file changed, 17 insertions(+) >> >> diff --git a/emacs/notmuch-tag.el b/emacs/notmuch-tag.el >> index 0c0fc87..c1aeb99 100644 >> --- a/emacs/notmuch-tag.el >> +++ b/emacs/notmuch-tag.el >> @@ -140,6 +140,23 @@ notmuch-after-tag-hook will be run." >> ;; in all cases we return tag-changes as a list >> tag-changes) >> >> +(defun notmuch-tag-change-list (tags &optional reverse) >> + "Convert TAGS into a list of tag changes. >> + >> +Add a \"+\" prefix to any tag in TAGS list that doesn't already >> +begin with a \"+\" or a \"-\". If REVERSE is non-nil, replace all >> +\"+\" prefixes with \"-\" and vice versa in the result." >> + (mapcar (lambda (str) >> + (let ((s (if (not (string-match "^[+-]" str)) >> + (concat "+" str) >> + str))) > > (if (string-match "^[-+]" str) str (concat "+" str)) > > Negation only makes things less readable IMO. Agreed. Jani. > >> + (if reverse >> + (concat (if (= (string-to-char s) ?-) "+" "-") >> + (substring s 1)) >> + s))) >> + tags)) >> + >> + >> ;; >> >> (provide 'notmuch-tag) > > -- > 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--