From: Jameson Graef Rollins Date: Sat, 14 Apr 2012 18:52:52 +0000 (-0700) Subject: emacs: modify search tag functions to use new notmuch-tag interface X-Git-Tag: 0.13_rc1~38 X-Git-Url: https://git.notmuchmail.org/git?p=notmuch;a=commitdiff_plain;h=dba0e53ea840e33756813c3b35bb5b5793b009c7 emacs: modify search tag functions to use new notmuch-tag interface The main change here is to modify argument parsing so as to not force tag-changes to be a list, and to let notmuch-tag handle prompting the user when required. doc strings are also updated and cleaned up. --- diff --git a/emacs/notmuch.el b/emacs/notmuch.el index 03a882ea..a069492b 100644 --- a/emacs/notmuch.el +++ b/emacs/notmuch.el @@ -523,13 +523,10 @@ and will also appear in a buffer named \"*Notmuch errors*\"." See `notmuch-search-tag-region' for details." (apply 'notmuch-search-tag-region (point) (point) tag-changes)) -(defun notmuch-search-tag-region (beg end &rest tag-changes) - "Change tags for threads in the given region. - -TAGS is a list of tag operations for `notmuch-tag'. The tags are -added or removed for all threads in the region from BEG to END." +(defun notmuch-search-tag-region (beg end &optional tag-changes) + "Change tags for threads in the given region." (let ((search-string (notmuch-search-find-thread-id-region-search beg end))) - (apply 'notmuch-tag search-string tag-changes) + (setq tag-changes (funcall 'notmuch-tag search-string tag-changes)) (save-excursion (let ((last-line (line-number-at-pos end)) (max-line (- (line-number-at-pos (point-max)) 2))) @@ -539,14 +536,14 @@ added or removed for all threads in the region from BEG to END." (notmuch-update-tags (notmuch-search-get-tags) tag-changes)) (forward-line)))))) -(defun notmuch-search-tag (&optional initial-input) - "Change tags for the currently selected thread or region." +(defun notmuch-search-tag (&optional tag-changes) + "Change tags for the currently selected thread or region. + +See `notmuch-tag' for information on the format of TAG-CHANGES." (interactive) (let* ((beg (if (region-active-p) (region-beginning) (point))) - (end (if (region-active-p) (region-end) (point))) - (search-string (notmuch-search-find-thread-id-region-search beg end)) - (tags (notmuch-read-tag-changes initial-input search-string))) - (apply 'notmuch-search-tag-region beg end tags))) + (end (if (region-active-p) (region-end) (point)))) + (funcall 'notmuch-search-tag-region beg end tag-changes))) (defun notmuch-search-add-tag () "Same as `notmuch-search-tag' but sets initial input to '+'." @@ -789,18 +786,11 @@ non-authors is found, assume that all of the authors match." (goto-char found-target))) (delete-process proc)))) -(defun notmuch-search-tag-all (&rest tag-changes) - "Add/remove tags from all matching messages. +(defun notmuch-search-tag-all (&optional tag-changes) + "Add/remove tags from all messages in current search buffer. -This command adds or removes tags from all messages matching the -current search terms. When called interactively, this command -will prompt for tags to be added or removed. Tags prefixed with -'+' will be added and tags prefixed with '-' will be removed. - -Each character of the tag name may consist of alphanumeric -characters as well as `_.+-'. -" - (interactive (notmuch-read-tag-changes)) +See `notmuch-tag' for information on the format of TAG-CHANGES." + (interactive) (apply 'notmuch-tag notmuch-search-query-string tag-changes)) (defun notmuch-search-buffer-title (query)