Subject: Re: bug#8963: 24.0.50; gnus-no-server tries to connect to IMAP server

From: Daiki Ueno <[email-masked]>
Date: Tue, 05 Jul 2011 14:58:51 +0900

Daiki Ueno <[email-masked]> writes:

>   gnus-read-active-file-1((nnimap "a" (nnimap-address "a.example.org")) nil)
>   gnus-get-unread-articles(2)

OK, I'm trying to fix it by myself.  The attached is a proposed patch.
I would appreciate if you could double-check since I'm not completely
sure what the original code intends to do.

=== modified file 'lisp/gnus/gnus-start.el'
--- lisp/gnus/gnus-start.el	2011-06-10 00:10:24 +0000
+++ lisp/gnus/gnus-start.el	2011-07-05 05:49:35 +0000
@@ -1043,7 +1043,7 @@
 
     ;; Find the number of unread articles in each non-dead group.
     (let ((gnus-read-active-file (and (not level) gnus-read-active-file)))
-      (gnus-get-unread-articles level))))
+      (gnus-get-unread-articles level dont-connect))))
 
 (defun gnus-call-subscribe-functions (method group)
   "Call METHOD to subscribe GROUP.
@@ -1606,7 +1606,7 @@
 
 ;; Go though `gnus-newsrc-alist' and compare with `gnus-active-hashtb'
 ;; and compute how many unread articles there are in each group.
-(defun gnus-get-unread-articles (&optional level)
+(defun gnus-get-unread-articles (&optional level dont-connect)
   (setq gnus-server-method-cache nil)
   (require 'gnus-agent)
   (let* ((newsrc (cdr gnus-newsrc-alist))
@@ -1702,12 +1702,13 @@
 
     ;; If we have primary/secondary select methods, but no groups from
     ;; them, we still want to issue a retrieval request from them.
-    (dolist (method (cons gnus-select-method
-			  gnus-secondary-select-methods))
-      (when (and (not (assoc method type-cache))
-		 (gnus-check-backend-function 'request-list (car method)))
-	(with-current-buffer nntp-server-buffer
-	  (gnus-read-active-file-1 method nil))))
+    (unless dont-connect
+      (dolist (method (cons gnus-select-method
+			    gnus-secondary-select-methods))
+	(when (and (not (assoc method type-cache))
+		   (gnus-check-backend-function 'request-list (car method)))
+	  (with-current-buffer nntp-server-buffer
+	    (gnus-read-active-file-1 method nil)))))
 
     ;; Start early async retrieval of data.
     (let ((done-methods nil)

Regards,
-- 
Daiki Ueno