From: Jani Nikula Date: Thu, 6 Sep 2012 15:32:37 +0000 (+0300) Subject: emacs: add helper for tag change list manipulation X-Git-Tag: 0.15_rc1~245 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=1dc7e66ee7186679e7669f045a4d787f36d26860;p=notmuch.git emacs: add helper for tag change list manipulation Add a helper to create (and optionally reverse) a list of tag changes. --- diff --git a/emacs/notmuch-tag.el b/emacs/notmuch-tag.el index 0c0fc875..4fce3a98 100644 --- a/emacs/notmuch-tag.el +++ b/emacs/notmuch-tag.el @@ -140,6 +140,21 @@ 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 (string-match "^[+-]" str) str (concat "+" str)))) + (if reverse + (concat (if (= (string-to-char s) ?-) "+" "-") + (substring s 1)) + s))) + tags)) + + ;; (provide 'notmuch-tag)