emacs: set query-context to nil if its "" or "*"

The queries "" and "*" are special cased in the notmuch library to
match all messages, but only if they're the entire query. They can't
be combined with other queries, such as "* AND foo", in which case
they "leak" down to the Xapian query parser.

Notmuch show and tree buffers inadvertently combine the thread query
with said special queries, causing incorrect collapsing of
messages. Handle the special queries specially. We already do a
similar thing in notmuch-search-filter.
This commit is contained in:
Jani Nikula 2017-08-13 12:07:24 +03:00 committed by David Bremner
parent cd8551d53a
commit cb5253578d
2 changed files with 6 additions and 2 deletions

View file

@ -1260,7 +1260,9 @@ matched."
;; aren't wiped out. ;; aren't wiped out.
(setq notmuch-show-thread-id thread-id (setq notmuch-show-thread-id thread-id
notmuch-show-parent-buffer parent-buffer notmuch-show-parent-buffer parent-buffer
notmuch-show-query-context query-context notmuch-show-query-context (if (or (string= query-context "")
(string= query-context "*"))
nil query-context)
notmuch-show-process-crypto notmuch-crypto-process-mime notmuch-show-process-crypto notmuch-crypto-process-mime
;; If `elide-toggle', invert the default value. ;; If `elide-toggle', invert the default value.

View file

@ -897,7 +897,9 @@ the same as for the function notmuch-tree."
(notmuch-tree-mode) (notmuch-tree-mode)
(add-hook 'post-command-hook #'notmuch-tree-command-hook t t) (add-hook 'post-command-hook #'notmuch-tree-command-hook t t)
(setq notmuch-tree-basic-query basic-query) (setq notmuch-tree-basic-query basic-query)
(setq notmuch-tree-query-context query-context) (setq notmuch-tree-query-context (if (or (string= query-context "")
(string= query-context "*"))
nil query-context))
(setq notmuch-tree-target-msg target) (setq notmuch-tree-target-msg target)
(setq notmuch-tree-open-target open-target) (setq notmuch-tree-open-target open-target)
;; Set the default value for `notmuch-show-process-crypto' in this ;; Set the default value for `notmuch-show-process-crypto' in this