Jani Nikula 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. > + (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 +------------------ooO--(_)--Ooo--