]> git.eshelyaron.com Git - emacs.git/commitdiff
Another backwards-compatibility fix for gnus-search
authorEric Abrahamsen <eric@ericabrahamsen.net>
Sun, 8 Nov 2020 16:37:03 +0000 (08:37 -0800)
committerEric Abrahamsen <eric@ericabrahamsen.net>
Sun, 8 Nov 2020 16:39:19 +0000 (08:39 -0800)
* lisp/gnus/gnus-search.el (gnus-search-server-to-engine): Because of
the way we've set up the obsolete variable alias for
`nnir-method-default-engines', we may end up with its value in
`gnus-search-default-engines'. Make the check for "old style" values
general, so we catch them no matter where they came from.

lisp/gnus/gnus-search.el

index abee7c471161bc852734d69d1e36dbd8dbac5979..fbed9029fbdf72e70fdcb4931fcd1e46441ab915 100644 (file)
@@ -1963,25 +1963,29 @@ remaining string, then adds all that to the top-level spec."
 (defun gnus-search-server-to-engine (srv)
   (let* ((method (gnus-server-to-method srv))
         (engine-config (assoc 'gnus-search-engine (cddr method)))
-        (server
-         (or (nth 1 engine-config)
-             (cdr-safe (assoc (car method) gnus-search-default-engines))
-             (when-let ((old (assoc 'nnir-search-engine
-                                    (cddr method))))
-               (nnheader-message
-                8 "\"nnir-search-engine\" is no longer a valid parameter")
-               (pcase (nth 1 old)
-                 ('notmuch 'gnus-search-notmuch)
-                 ('namazu 'gnus-search-namazu)
-                 ('find-grep 'gnus-search-find-grep)))))
-        (inst
+        (server (or (nth 1 engine-config)
+                    (cdr-safe (assoc (car method) gnus-search-default-engines))
+                    (when-let ((old (assoc 'nnir-search-engine
+                                           (cddr method))))
+                      (nnheader-message
+                       8 "\"nnir-search-engine\" is no longer a valid parameter")
+                      (nth 1 old))))
+        inst)
+    (setq server
+         (pcase server
+           ('notmuch 'gnus-search-notmuch)
+           ('namazu 'gnus-search-namazu)
+           ('find-grep 'gnus-search-find-grep)
+           ('imap 'gnus-search-imap)
+           (_ server))
+         inst
          (cond
           ((null server) nil)
           ((eieio-object-p server)
            server)
           ((class-p server)
            (make-instance server))
-          (t nil))))
+          (t nil)))
     (if inst
        (when (cddr engine-config)
          ;; We're not being completely backward-compatible here,
@@ -1994,7 +1998,7 @@ remaining string, then adds all that to the top-level spec."
               (nnheader-message
                5 "Invalid search engine parameter: (%s %s)"
                key value)))))
-      (error "No search engine defined for %S" method))
+      (error "No search engine defined for %s" srv))
     inst))
 
 (declare-function gnus-registry-get-id-key "gnus-registry" (id key))