]> git.notmuchmail.org Git - notmuch/commitdiff
emacs: Add a notmuch-saved-searches function.
authorCarl Worth <cworth@cworth.org>
Tue, 27 Apr 2010 05:37:11 +0000 (22:37 -0700)
committerCarl Worth <cworth@cworth.org>
Tue, 27 Apr 2010 05:37:11 +0000 (22:37 -0700)
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
emacs/notmuch-lib.el
emacs/notmuch.el

index e3132a9066e62d2fe2fd81c3e1457d5afb2b255e..bbeb5de0c8c7d7d164af31477457b2fdcf1465f9 100644 (file)
 (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
-  (if (not notmuch-saved-searches)
-      (setq notmuch-saved-searches notmuch-folders))
-
-  ;; And set a default if neither has been set by the user
+  ; 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 '(("inbox" . "tag:inbox")
-                                    ("unread" . "tag:unread"))))
+    (setq notmuch-saved-searches (notmuch-saved-searches)))
 
   (if no-display
       (set-buffer "*notmuch-hello*")
index b64aeab94a4997053d09e5dc41969344af123d24..39eaf79b353fa48c6f2e3e8d85a6114e71ac1fc3 100644 (file)
 
 ;;
 
+(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
index 4894012a09b02617cde6d2ffd07aa4d7131806c7..469d5fbdc20a6bf4ee45f3fb6fd4afb45bbb2ccc 100644 (file)
@@ -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))