From: Carl Worth Date: Fri, 16 Apr 2010 04:22:57 +0000 (-0700) Subject: emacs: Fix search filtering of a global search ("*") X-Git-Tag: 0.2~21 X-Git-Url: https://git.notmuchmail.org/git?p=notmuch;a=commitdiff_plain;h=b4459b8a4d39f635f79d44f676be13e974cc1a72 emacs: Fix search filtering of a global search ("*") With the recent addition of "*" being a special case for a search matching all messages, we have to take care when doing a filter operation. In this case it's not legal to simply append and get: * and Instead we carefully construct a new search string of only: This could all be avoided if we had a parser that could understand "*" with the meaning we want. --- diff --git a/emacs/notmuch.el b/emacs/notmuch.el index be09f424..8b153cc0 100644 --- a/emacs/notmuch.el +++ b/emacs/notmuch.el @@ -773,8 +773,12 @@ search." Runs a new search matching only messages that match both the current search results AND the additional query string provided." (interactive "sFilter search: ") - (let ((grouped-query (if (string-match-p notmuch-search-disjunctive-regexp query) (concat "( " query " )") query))) - (notmuch-search (concat notmuch-search-query-string " and " grouped-query) notmuch-search-oldest-first))) + (let ((grouped-query (if (string-match-p notmuch-search-disjunctive-regexp query) + (concat "( " query " )") + query))) + (notmuch-search (if (string= notmuch-search-query-string "*") + grouped-query + (concat notmuch-search-query-string " and " grouped-query)) notmuch-search-oldest-first))) (defun notmuch-search-filter-by-tag (tag) "Filter the current search results based on a single tag.