Return-Path: X-Original-To: notmuch@notmuchmail.org Delivered-To: notmuch@notmuchmail.org Received: from localhost (localhost [127.0.0.1]) by olra.theworths.org (Postfix) with ESMTP id CD146431FCF for ; Sat, 7 Apr 2012 17:35:50 -0700 (PDT) X-Virus-Scanned: Debian amavisd-new at olra.theworths.org X-Spam-Flag: NO X-Spam-Score: -2.3 X-Spam-Level: X-Spam-Status: No, score=-2.3 tagged_above=-999 required=5 tests=[RCVD_IN_DNSWL_MED=-2.3] autolearn=disabled Received: from olra.theworths.org ([127.0.0.1]) by localhost (olra.theworths.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Grv45H+DCUPc for ; Sat, 7 Apr 2012 17:35:49 -0700 (PDT) Received: from outgoing-mail.its.caltech.edu (outgoing-mail.its.caltech.edu [131.215.239.19]) by olra.theworths.org (Postfix) with ESMTP id B5D05431FBC for ; Sat, 7 Apr 2012 17:35:47 -0700 (PDT) Received: from earth-doxen.imss.caltech.edu (localhost [127.0.0.1]) by earth-doxen-postvirus (Postfix) with ESMTP id B152B66E00E2 for ; Sat, 7 Apr 2012 17:35:46 -0700 (PDT) X-Spam-Scanned: at Caltech-IMSS on earth-doxen by amavisd-new Received: from finestructure.net (unknown [76.89.193.65]) (Authenticated sender: jrollins) by earth-doxen-submit (Postfix) with ESMTP id C1A9E66E00E6 for ; Sat, 7 Apr 2012 17:35:44 -0700 (PDT) Received: by finestructure.net (Postfix, from userid 1000) id 06BCC92D; Sat, 7 Apr 2012 17:35:43 -0700 (PDT) From: Jameson Graef Rollins To: Notmuch Mail Subject: [PATCH 5/8] emacs: modify search tag functions to use new notmuch-tag interface Date: Sat, 7 Apr 2012 17:35:35 -0700 Message-Id: <1333845338-22960-6-git-send-email-jrollins@finestructure.net> X-Mailer: git-send-email 1.7.9.1 In-Reply-To: <1333845338-22960-5-git-send-email-jrollins@finestructure.net> References: <1333354853-25729-1-git-send-email-jrollins@finestructure.net> <1333845338-22960-1-git-send-email-jrollins@finestructure.net> <1333845338-22960-2-git-send-email-jrollins@finestructure.net> <1333845338-22960-3-git-send-email-jrollins@finestructure.net> <1333845338-22960-4-git-send-email-jrollins@finestructure.net> <1333845338-22960-5-git-send-email-jrollins@finestructure.net> X-BeenThere: notmuch@notmuchmail.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: "Use and development of the notmuch mail system." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 08 Apr 2012 00:35:51 -0000 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. --- emacs/notmuch.el | 36 +++++++++++++----------------------- 1 files changed, 13 insertions(+), 23 deletions(-) diff --git a/emacs/notmuch.el b/emacs/notmuch.el index 9aec96d..a03a526 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 '+'." @@ -790,18 +787,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) -- 1.7.9.1