summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarl Worth <cworth@cworth.org>2010-04-26 23:00:20 -0700
committerCarl Worth <cworth@cworth.org>2010-04-26 23:00:20 -0700
commit0d8e26d0e3324e28424329dd79d4c44b849b27ce (patch)
treec0d9ed3a969c499103d3fd886ee1d03b598932f3
parent6731ab1037aecb022ed593e6ae306a042b58dbb8 (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.el4
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))