From aae44a36f35cc8bdefe86daf78fb9aa03df72c3a Mon Sep 17 00:00:00 2001 From: Eric Abrahamsen <eric@ericabrahamsen.net> Date: Sun, 20 Dec 2020 11:26:37 -0800 Subject: Ensure that Gnus servers are open(able) before searching them * lisp/gnus/gnus-search.el (gnus-search-run-search): Imap servers need to be opened (made into the "current server") before we manipulate the nnimap-buffer. (gnus-search-run-search): Sneakily fix regexp. (gnus-search-indexed-parse-output): We need to pass the server name in here, otherwise nnmaildir won't know how to make this the "current server". --- lisp/gnus/gnus-search.el | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'lisp/gnus/gnus-search.el') diff --git a/lisp/gnus/gnus-search.el b/lisp/gnus/gnus-search.el index 16f3a024aa6..3a3722c90a3 100644 --- a/lisp/gnus/gnus-search.el +++ b/lisp/gnus/gnus-search.el @@ -1050,6 +1050,7 @@ Responsible for handling and, or, and parenthetical expressions.") (grouplist (or groups (gnus-search-get-active srv))) q-string artlist group) (message "Opening server %s" server) + (gnus-open-server srv) ;; We should only be doing this once, in ;; `nnimap-open-connection', but it's too frustrating to try to ;; get to the server from the process buffer. @@ -1071,7 +1072,7 @@ Responsible for handling and, or, and parenthetical expressions.") ;; A bit of backward-compatibility slash convenience: if the ;; query string doesn't start with any known IMAP search ;; keyword, assume it is a "TEXT" search. - (unless (and (string-match "\\`[^ [:blank:]]+" q-string) + (unless (and (string-match "\\`[^[:blank:]]+" q-string) (memql (intern-soft (downcase (match-string 0 q-string))) gnus-search-imap-search-keys)) @@ -1424,7 +1425,7 @@ Returns a list of [group article score] vectors." (string-to-number article) (nnmaildir-base-name-to-article-number (substring article 0 (string-match ":" article)) - group nil)) + group (string-remove-prefix "nnmaildir:" server))) (if (numberp score) score (string-to-number score))) -- cgit v1.2.3