(gnus-get-unread-articles): Ignore totally non-existent methods.
authorLars Magne Ingebrigtsen <larsi@quimbies.gnus.org>
Sun, 7 Nov 2010 18:11:52 +0000 (19:11 +0100)
committerLars Magne Ingebrigtsen <larsi@quimbies.gnus.org>
Sun, 7 Nov 2010 18:11:52 +0000 (19:11 +0100)
lisp/ChangeLog
lisp/gnus-start.el

index f2c7fba..d8b814b 100644 (file)
@@ -1,5 +1,8 @@
 2010-11-07  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 
+       * gnus-start.el (gnus-get-unread-articles): Ignore totally non-existent
+       methods.
+
        * gnus-group.el (gnus-group-read-ephemeral-group): Remove superfluous
        ": " from the prompt.
        (gnus-group-make-group): Ditto.
index 2466ddd..bad3ffe 100644 (file)
@@ -1702,16 +1702,20 @@ If SCAN, request a scan of that group as well."
       (destructuring-bind (method method-type infos dummy) elem
        (when (and method infos
                   (not (gnus-method-denied-p method)))
-         (unless (gnus-server-opened method)
-           (gnus-open-server method))
-         (when (and
-                (gnus-server-opened method)
-                (gnus-check-backend-function
-                 'retrieve-group-data-early (car method)))
-           (when (gnus-check-backend-function 'request-scan (car method))
-             (gnus-request-scan nil method))
-           (setcar (nthcdr 3 elem)
-                   (gnus-retrieve-group-data-early method infos))))))
+         ;; If the open-server method doesn't exist, then the method
+         ;; itself doesn't exist, so we ignore it.
+         (if (not (ignore-errors (gnus-get-function method 'open-server)))
+             (setq type-cache (delq elem type-cache))
+           (unless (gnus-server-opened method)
+             (gnus-open-server method))
+           (when (and
+                  (gnus-server-opened method)
+                  (gnus-check-backend-function
+                   'retrieve-group-data-early (car method)))
+             (when (gnus-check-backend-function 'request-scan (car method))
+               (gnus-request-scan nil method))
+             (setcar (nthcdr 3 elem)
+                     (gnus-retrieve-group-data-early method infos)))))))
 
     ;; Do the rest of the retrieval.
     (dolist (elem type-cache)