changeset 111441:b527d5f89f7f

gnus-group.el (gnus-group-read-ephemeral-group, gnus-group-make-group): Remove superfluous ": " from the prompt. gnus-start.el (gnus-get-unread-articles, gnus-read-active-file): Ignore totally non-existent methods.
author Katsumi Yamaoka <yamaoka@jpl.org>
date Mon, 08 Nov 2010 01:38:47 +0000
parents b72ff43b041f
children 7094295b2a61 e89dd9c3633b
files lisp/gnus/ChangeLog lisp/gnus/gnus-group.el lisp/gnus/gnus-start.el
diffstat 3 files changed, 29 insertions(+), 13 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/gnus/ChangeLog	Sun Nov 07 10:45:45 2010 -0500
+++ b/lisp/gnus/ChangeLog	Mon Nov 08 01:38:47 2010 +0000
@@ -1,3 +1,13 @@
+2010-11-07  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-start.el (gnus-get-unread-articles): Ignore totally non-existent
+	methods.
+	(gnus-read-active-file): Ditto.
+
+	* gnus-group.el (gnus-group-read-ephemeral-group): Remove superfluous
+	": " from the prompt.
+	(gnus-group-make-group): Ditto.
+
 2010-11-07  Glenn Morris  <rgm@gnu.org>
 
 	* gnus-bookmark.el (gnus-bookmark-bmenu-show-infos)
--- a/lisp/gnus/gnus-group.el	Sun Nov 07 10:45:45 2010 -0500
+++ b/lisp/gnus/gnus-group.el	Mon Nov 08 01:38:47 2010 +0000
@@ -2267,7 +2267,7 @@
    (list
     ;; (gnus-read-group "Group name: ")
     (gnus-group-completing-read)
-    (gnus-read-method "From method: ")))
+    (gnus-read-method "From method")))
   ;; Transform the select method into a unique server.
   (when (stringp method)
     (setq method (gnus-server-to-method method)))
@@ -2674,7 +2674,7 @@
   (interactive
    (list
     (gnus-read-group "Group name: ")
-    (gnus-read-method "From method: ")))
+    (gnus-read-method "From method")))
 
   (when (stringp method)
     (setq method (or (gnus-server-to-method method) method)))
--- a/lisp/gnus/gnus-start.el	Sun Nov 07 10:45:45 2010 -0500
+++ b/lisp/gnus/gnus-start.el	Mon Nov 08 01:38:47 2010 +0000
@@ -1702,16 +1702,20 @@
       (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)
@@ -1982,7 +1986,9 @@
       (while (setq method (pop methods))
 	;; Only do each method once, in case the methods appear more
 	;; than once in this list.
-	(unless (member method methods)
+	(when (and (not (member method methods))
+		   ;; Check whether the backend exists.
+		   (ignore-errors (gnus-get-function method 'open-server)))
 	  (if (or debug-on-error debug-on-quit)
 	      (gnus-read-active-file-1 method force)
 	    (condition-case ()