From 0d8e26d0e3324e28424329dd79d4c44b849b27ce Mon Sep 17 00:00:00 2001 From: Carl Worth Date: Mon, 26 Apr 2010 23:00:20 -0700 Subject: [PATCH] emacs: Tweak search-buffer naming to search list in reverse order The complete-string matching of commit f2ebe3ac446afda9ced6507dc391865464ccdcaa defeats the substitution of partial search strings when the user manually types a long search string that just happens to partially match a saved search. For example, typing "tag:inbox and not tag:foo" should result in "[inbox] and not tag:foo" but this has been broken since that commit. As a compromise between this feature and what the commit was trying to achieve, we now reverse the saved-searches list before looking for a match. This happens to work for me, but won't necessarily work in general. What we really want is the longest match, but rassoc-if just gives us the first match. All of this is just about creating slightly nice search-buffer names. So if anyone really cares about making the names *even* nicer, then they could improve this further. --- emacs/notmuch.el | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/emacs/notmuch.el b/emacs/notmuch.el index ba9bbdad..488458af 100644 --- a/emacs/notmuch.el +++ b/emacs/notmuch.el @@ -663,9 +663,9 @@ characters as well as `_.+-'. (defun notmuch-search-buffer-title (query) "Returns the title for a buffer with notmuch search results." (let* ((saved-search (rassoc-if (lambda (key) - (string-match (concat "^" (regexp-quote key) "$") + (string-match (concat "^" (regexp-quote key)) query)) - (notmuch-saved-searches))) + (reverse (notmuch-saved-searches)))) (saved-search-name (car saved-search)) (saved-search-query (cdr saved-search))) (cond ((and saved-search (equal saved-search-query query)) -- 2.26.2