This permits saved searches like "today". --- This is similar functionality to David's patch, but uses an accessor so that queries are always evaluated dynamically.
emacs/notmuch-hello.el | 4 ++-- emacs/notmuch-lib.el | 11 ++++++++++- emacs/notmuch.el | 2 +- 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/emacs/notmuch-hello.el b/emacs/notmuch-hello.el index e58dd24..15eaafb 100644 --- a/emacs/notmuch-hello.el +++ b/emacs/notmuch-hello.el @@ -234,7 +234,7 @@ should be. Returns a cons cell `(tags-per-line width)'." ;; (not elem) indicates an empty slot in the matrix. (when elem (let* ((name (car elem)) - (query (cdr elem)) + (query (notmuch-saved-search-get-query elem)) (formatted-name (format "%s " name))) (widget-insert (format "%8s " (notmuch-hello-nice-number @@ -393,7 +393,7 @@ Complete list of currently available key bindings: (if notmuch-show-empty-saved-searches notmuch-saved-searches (loop for elem in notmuch-saved-searches - if (> (string-to-number (notmuch-saved-search-count (cdr elem))) 0) + if (> (string-to-number (notmuch-saved-search-count (notmuch-saved-search-get-query elem))) 0) collect elem))) (saved-widest (notmuch-hello-longest-label saved-alist)) (alltags-alist (if notmuch-show-all-tags-list diff --git a/emacs/notmuch-lib.el b/emacs/notmuch-lib.el index dd180ee..3fcb837 100644 --- a/emacs/notmuch-lib.el +++ b/emacs/notmuch-lib.el @@ -37,7 +37,9 @@ (defcustom notmuch-saved-searches nil "A list of saved searches to display." - :type '(alist :key-type string :value-type string) + :type '(alist :key-type (string :tag "Name") + :value-type (choice (string :tag "Search") + (function :tag "Function"))) :group 'notmuch) (defvar notmuch-folders nil @@ -56,6 +58,13 @@ the user hasn't set this variable with the old or new value." '(("inbox" . "tag:inbox") ("unread" . "tag:unread"))))) +(defun notmuch-saved-search-get-query (tuple) + "Get the query string for a saved tuple." + (let ((q (cdr tuple))) + (if (stringp q) + q + (funcall q)))) + (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 5933747..5864b21 100644 --- a/emacs/notmuch.el +++ b/emacs/notmuch.el @@ -763,7 +763,7 @@ characters as well as `_.+-'. (let (longest (longest-length 0)) (loop for tuple in notmuch-saved-searches - if (let ((quoted-query (regexp-quote (cdr tuple)))) + if (let ((quoted-query (regexp-quote (notmuch-saved-search-get-query tuple)))) (and (string-match (concat "^" quoted-query) query) (> (length (match-string 0 query)) longest-length))) -- 1.7.3.2