X-Git-Url: http://cgit.sxemacs.org/?a=blobdiff_plain;f=lisp%2Fgnus-start.el;h=e970ca73e10897278e4157b2c20ba18990330a88;hb=2c3eb1946ce3d614af2aafdc0160ec498c3b250c;hp=b493a93d40c73cc013a40455390d974c55557156;hpb=bb493e50d32285416d42e3a52d79a34fbfe67df6;p=gnus diff --git a/lisp/gnus-start.el b/lisp/gnus-start.el index b493a93d4..e970ca73e 100644 --- a/lisp/gnus-start.el +++ b/lisp/gnus-start.el @@ -1675,7 +1675,20 @@ If SCAN, request a scan of that group as well." (lambda (c1 c2) (< (gnus-method-rank (cadr c1) (car c1)) (gnus-method-rank (cadr c2) (car c2)))))) - + ;; Go through the list of servers and possibly extend methods that + ;; aren't equal (and that need extension; i.e., they are async). + (let ((methods nil)) + (dolist (elem type-cache) + (destructuring-bind (method method-type infos dummy) elem + (let ((gnus-opened-servers methods)) + (when (and (gnus-similar-server-opened method) + (gnus-check-backend-function + 'retrieve-group-data-early (car method))) + (setq method (gnus-server-extend-method + (gnus-info-group (car infos)) + method)) + (setcar elem method)) + (push (list method 'ok) methods))))) ;; Start early async retrieval of data. (dolist (elem type-cache) (destructuring-bind (method method-type infos dummy) elem @@ -1704,8 +1717,8 @@ If SCAN, request a scan of that group as well." 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)))) + (with-current-buffer nntp-server-buffer + (gnus-read-active-file-1 method nil)))) ;; Do the rest of the retrieval. (dolist (elem type-cache)