diff options
author | Carl Worth <cworth@cworth.org> | 2010-04-26 23:00:20 -0700 |
---|---|---|
committer | Carl Worth <cworth@cworth.org> | 2010-04-26 23:00:20 -0700 |
commit | 0d8e26d0e3324e28424329dd79d4c44b849b27ce (patch) | |
tree | c0d9ed3a969c499103d3fd886ee1d03b598932f3 | |
parent | 6731ab1037aecb022ed593e6ae306a042b58dbb8 (diff) |
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.
-rw-r--r-- | emacs/notmuch.el | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/emacs/notmuch.el b/emacs/notmuch.el index ba9bbda..488458a 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)) |