]> git.notmuchmail.org Git - notmuch/commitdiff
emacs: Tweak search-buffer naming to search list in reverse order
authorCarl Worth <cworth@cworth.org>
Tue, 27 Apr 2010 06:00:20 +0000 (23:00 -0700)
committerCarl Worth <cworth@cworth.org>
Tue, 27 Apr 2010 06:00:20 +0000 (23:00 -0700)
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

index ba9bbdad7814407e1baf41c1d0b3d77c736fc522..488458af98bf516cd55a712ca45567caa49a11e7 100644 (file)
@@ -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))