From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from localhost (localhost [127.0.0.1]) by olra.theworths.org (Postfix) with ESMTP id 3EA9A431FBC for ; Fri, 27 Jan 2012 20:42:52 -0800 (PST) X-Virus-Scanned: Debian amavisd-new at olra.theworths.org X-Spam-Flag: NO X-Spam-Score: -0.799 X-Spam-Level: X-Spam-Status: No, score=-0.799 tagged_above=-999 required=5 tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7] 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 jtmPsmEs0qhf for ; Fri, 27 Jan 2012 20:42:51 -0800 (PST) Received: from mail-bk0-f53.google.com (mail-bk0-f53.google.com [209.85.214.53]) (using TLSv1 with cipher RC4-SHA (128/128 bits)) (No client certificate requested) by olra.theworths.org (Postfix) with ESMTPS id 13716431FD6 for ; Fri, 27 Jan 2012 20:42:41 -0800 (PST) Received: by mail-bk0-f53.google.com with SMTP id zt19so2255515bkb.26 for ; Fri, 27 Jan 2012 20:42:41 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=from:to:subject:date:message-id:x-mailer:in-reply-to:references; bh=r4I6h0mr3Myu6qCDKlGpxaLIAf6a0DVhKJQcJez/elI=; b=wJQDmFi36s7lKMxrZ/cMBINSsIBdrvFO64qYQ/93IosUmmW4Kjw5KrZ7ACkcKOp7hs He6aV7Wves8jQPRTKE2scxYJT/3p3ZZyX65ZqR9NxOrYxSsjKIeaeFH+YNEe3X/A6f9V V/qvi2vmFfxsachM3nifmdTKVvn094HL3tCVM= Received: by 10.204.157.25 with SMTP id z25mr4294521bkw.25.1327725761792; Fri, 27 Jan 2012 20:42:41 -0800 (PST) Received: from localhost ([91.144.186.21]) by mx.google.com with ESMTPS id bw9sm20679266bkb.8.2012.01.27.20.42.40 (version=TLSv1/SSLv3 cipher=OTHER); Fri, 27 Jan 2012 20:42:41 -0800 (PST) From: Dmitry Kurochkin To: notmuch@notmuchmail.org Subject: [PATCH 6/6] emacs: separate history for operations which accept single and multiple tags Date: Sat, 28 Jan 2012 08:41:24 +0400 Message-Id: <1327725684-5887-6-git-send-email-dmitry.kurochkin@gmail.com> X-Mailer: git-send-email 1.7.8.3 In-Reply-To: <1327725684-5887-1-git-send-email-dmitry.kurochkin@gmail.com> References: <1327725684-5887-1-git-send-email-dmitry.kurochkin@gmail.com> 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: Sat, 28 Jan 2012 04:42:52 -0000 Some tag-related operations accept a single tag without prefix (`notmuch-select-tag-with-completion'), others accept multiple tags prefixed with '+' or '-' (`notmuch-select-tags-with-completion'). Before the change, both functions used a single default minibuffer history. This is inconvenient because you have to skip options with incompatible format when going through the history. The patch adds separate history lists for the two functions. Note that functions that accept the same input format (e.g. "+", "-", "*") share the history list as before. --- emacs/notmuch.el | 12 ++++++++++-- 1 files changed, 10 insertions(+), 2 deletions(-) diff --git a/emacs/notmuch.el b/emacs/notmuch.el index 24b0ea3..9813e0a 100644 --- a/emacs/notmuch.el +++ b/emacs/notmuch.el @@ -76,6 +76,14 @@ For example: (defvar notmuch-query-history nil "Variable to store minibuffer history for notmuch queries") +(defvar notmuch-select-tag-history nil + "Variable to store notmuch tag history for + `notmuch-select-tag-with-completion'.") + +(defvar notmuch-select-tags-history nil + "Variable to store notmuch tags history for + `notmuch-select-tags-with-completion'.") + (defun notmuch-tag-completions (&optional search-terms) (split-string (with-output-to-string @@ -86,7 +94,7 @@ For example: (defun notmuch-select-tag-with-completion (prompt &rest search-terms) (let ((tag-list (notmuch-tag-completions search-terms))) - (completing-read prompt tag-list))) + (completing-read prompt tag-list nil nil nil 'notmuch-select-tag-history))) (defun notmuch-select-tags-with-completion (&optional initial-input &rest search-terms) (let* ((add-tag-list (mapcar (apply-partially 'concat "+") @@ -105,7 +113,7 @@ For example: map))) (delete "" (completing-read-multiple "Operations (+add -drop): notmuch tag " tag-list nil - nil initial-input)))) + nil initial-input 'notmuch-select-tags-history)))) (defun notmuch-update-tags (current-tags changed-tags) "Update `current-tags' with `changed-tags' and return the result. -- 1.7.8.3