X-Git-Url: https://cgit.sxemacs.org/?p=gnus;a=blobdiff_plain;f=lisp%2Fgnus-start.el;h=b8a6be8702e92d7972dc3056db7375b40499cd0e;hp=b66c28b2a1caefb2f37365fa76ed4f84a5f8a3e5;hb=2a000c5fd3c6662f4f1487cac7a965c84502783c;hpb=92c18a01f99e8cbe4c1942ba317f2978761fcbd8 diff --git a/lisp/gnus-start.el b/lisp/gnus-start.el index b66c28b2a..b8a6be870 100644 --- a/lisp/gnus-start.el +++ b/lisp/gnus-start.el @@ -1705,6 +1705,15 @@ If SCAN, request a scan of that group as well." (setcar (nthcdr 3 elem) (gnus-retrieve-group-data-early method infos))))))) + ;; 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)))) + ;; Do the rest of the retrieval. (dolist (elem type-cache) (destructuring-bind (method method-type infos early-data) elem @@ -1747,14 +1756,12 @@ If SCAN, request a scan of that group as well." ;; methods. ((and (gnus-check-backend-function 'finish-retrieve-group-infos (car method)) - infos (or (not (gnus-agent-method-p method)) (gnus-online method))) (gnus-finish-retrieve-group-infos method infos early-data) (gnus-agent-save-active method)) ;; Most backends have -retrieve-groups. - ((and (gnus-check-backend-function 'retrieve-groups (car method)) - infos) + ((gnus-check-backend-function 'retrieve-groups (car method)) (when (gnus-check-backend-function 'request-scan (car method)) (gnus-request-scan nil method)) (let (groups) @@ -1762,10 +1769,10 @@ If SCAN, request a scan of that group as well." (dolist (info infos (nreverse groups)) (push (gnus-group-real-name (gnus-info-group info)) groups)) method))) - ;; All backends have -request-list. + ;; Virtually all backends have -request-list. ((gnus-check-backend-function 'request-list (car method)) - (gnus-read-active-file-1 method nil infos)) - ;; Unless nnvirtual and friends, where we request each group, one + (gnus-read-active-file-1 method nil)) + ;; Except nnvirtual and friends, where we request each group, one ;; by one. (t (dolist (info infos) @@ -1995,7 +2002,7 @@ If SCAN, request a scan of that group as well." (message "Quit reading the active file") nil)))))))) -(defun gnus-read-active-file-1 (method force &optional infos) +(defun gnus-read-active-file-1 (method force) (let (where mesg) (setq where (nth 1 method) mesg (format "Reading active file%s via %s..."