From f1f7e71e0347672e0658362c513e49c05b0f4161 Mon Sep 17 00:00:00 2001 From: Carl Worth Date: Mon, 26 Apr 2010 22:37:11 -0700 Subject: [PATCH] emacs: Add a notmuch-saved-searches function. We use this function to abstract away the common 3-step process for looking for a value for the saved-searches variable: 1. Look at the notmuch-saved-searches variable itself 2. Look at the notmuch-folders vaiable 3. Use a default value We were already using this logic (open-coded) in notmuch-hello, but notmuch.el was accessing notmuch-folders directly for the clever name selection of search buffers. --- emacs/notmuch-hello.el | 15 +++------------ emacs/notmuch-lib.el | 18 ++++++++++++++++++ emacs/notmuch.el | 2 +- 3 files changed, 22 insertions(+), 13 deletions(-) diff --git a/emacs/notmuch-hello.el b/emacs/notmuch-hello.el index e3132a90..bbeb5de0 100644 --- a/emacs/notmuch-hello.el +++ b/emacs/notmuch-hello.el @@ -45,11 +45,6 @@ (defvar notmuch-hello-indent 4 "How much to indent non-headers.") -(defcustom notmuch-saved-searches nil - "A list of saved searches to display." - :type '(alist :key-type string :value-type string) - :group 'notmuch) - (defcustom notmuch-show-logo t "Should the notmuch logo be shown?" :type 'boolean @@ -207,14 +202,10 @@ diagonal." (defun notmuch-hello (&optional no-display) (interactive) - ;; Provide support for the deprecated name of this variable + ; Jump through a hoop to get this value from the deprecated variable + ; name (`notmuch-folders') or from the default value. (if (not notmuch-saved-searches) - (setq notmuch-saved-searches notmuch-folders)) - - ;; And set a default if neither has been set by the user - (if (not notmuch-saved-searches) - (setq notmuch-saved-searches '(("inbox" . "tag:inbox") - ("unread" . "tag:unread")))) + (setq notmuch-saved-searches (notmuch-saved-searches))) (if no-display (set-buffer "*notmuch-hello*") diff --git a/emacs/notmuch-lib.el b/emacs/notmuch-lib.el index b64aeab9..39eaf79b 100644 --- a/emacs/notmuch-lib.el +++ b/emacs/notmuch-lib.el @@ -40,6 +40,24 @@ ;; +(defcustom notmuch-saved-searches nil + "A list of saved searches to display." + :type '(alist :key-type string :value-type string) + :group 'notmuch) + +(defun notmuch-saved-searches () + "Common function for querying the notmuch-saved-searches variable. + +We do this as a function to support the old name of the +variable (`notmuch-folders') as well as for the default value if +the user hasn't set this variable with the old or new value." + (if notmuch-saved-searches + notmuch-saved-searches + (if notmuch-folders + notmuch-folders + '(("inbox" . "tag:inbox") + ("unread" . "tag:unread"))))) + (defun notmuch-version () "Return a string with the notmuch version number." (let ((long-string diff --git a/emacs/notmuch.el b/emacs/notmuch.el index 4894012a..469d5fbd 100644 --- a/emacs/notmuch.el +++ b/emacs/notmuch.el @@ -665,7 +665,7 @@ characters as well as `_.+-'. (let* ((folder (rassoc-if (lambda (key) (string-match (concat "^" (regexp-quote key)) query)) - notmuch-folders)) + (notmuch-saved-searches))) (folder-name (car folder)) (folder-query (cdr folder))) (cond ((and folder (equal folder-query query))