]> git.eshelyaron.com Git - emacs.git/commitdiff
Ensure that Gnus servers are open(able) before searching them
authorEric Abrahamsen <eric@ericabrahamsen.net>
Sun, 20 Dec 2020 19:26:37 +0000 (11:26 -0800)
committerEric Abrahamsen <eric@ericabrahamsen.net>
Tue, 22 Dec 2020 17:01:25 +0000 (09:01 -0800)
* 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

index 16f3a024aa607d35f24565e3eafe9f213c9dfbc8..3a3722c90a3500e864fcd8e10a0a8b7ed69bfd71 100644 (file)
@@ -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)))