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 7021F431FBC for ; Sat, 4 Feb 2012 23:15:34 -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 LZreYz5FtQOl for ; Sat, 4 Feb 2012 23:15:34 -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 C8068431FB6 for ; Sat, 4 Feb 2012 23:15:33 -0800 (PST) Received: by mail-bk0-f53.google.com with SMTP id 11so4650313bke.26 for ; Sat, 04 Feb 2012 23:15:33 -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=rvBPHYFJU6jg74+HtfnvSP6xFCxeTKiQcHH62ZYRpYQ=; b=w9CuFzwvgp7d7N3/r+lpocDt+vR0k1YSX/FsdfJvspX8gIGlaC22drjZzpad7ENhMC CVsU9Q5KXhy+tCI/dU5reZHjERMCMiEnIxDWAyRRZpK50yToQ0z5ZIdgEFzWiyID3beJ reS55G1jav9u47FQcOHY7CtSx0HHh9GopyGCc= Received: by 10.204.10.82 with SMTP id o18mr6490933bko.20.1328426133473; Sat, 04 Feb 2012 23:15:33 -0800 (PST) Received: from localhost ([91.144.186.21]) by mx.google.com with ESMTPS id ga13sm33036975bkc.5.2012.02.04.23.15.32 (version=TLSv1/SSLv3 cipher=OTHER); Sat, 04 Feb 2012 23:15:32 -0800 (PST) From: Dmitry Kurochkin To: notmuch@notmuchmail.org Subject: [PATCH v5 08/12] emacs: separate history for operations which accept single and multiple tags Date: Sun, 5 Feb 2012 11:13:49 +0400 Message-Id: <1328426033-21480-9-git-send-email-dmitry.kurochkin@gmail.com> X-Mailer: git-send-email 1.7.9 In-Reply-To: <1328426033-21480-1-git-send-email-dmitry.kurochkin@gmail.com> References: <1327725684-5887-1-git-send-email-dmitry.kurochkin@gmail.com> <1328426033-21480-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: Sun, 05 Feb 2012 07:15:34 -0000 Some tag-related operations accept a single tag without prefix (`notmuch-select-tag-with-completion'), others accept multiple tags prefixed with '+' or '-' (`notmuch-read-tag-changes'). 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 | 13 +++++++++++-- 1 files changed, 11 insertions(+), 2 deletions(-) diff --git a/emacs/notmuch.el b/emacs/notmuch.el index 1f351a5..862d9e8 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 minibuffer history for +`notmuch-select-tag-with-completion' function.") + +(defvar notmuch-read-tag-changes-history nil + "Variable to store minibuffer history for +`notmuch-read-tag-changes' function.") + (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-read-tag-changes (&optional initial-input &rest search-terms) (let* ((all-tag-list (notmuch-tag-completions)) @@ -106,7 +114,8 @@ For example: (define-key map " " 'self-insert-command) map))) (delete "" (completing-read-multiple "Tags (+add -drop): " - tag-list nil nil initial-input)))) + tag-list nil nil initial-input + 'notmuch-read-tag-changes-history)))) (defun notmuch-update-tags (tags tag-changes) "Return a copy of TAGS with additions and removals from TAG-CHANGES. -- 1.7.9