From: Katsumi Yamaoka Date: Fri, 10 Sep 2010 05:32:25 +0000 (+0000) Subject: gnus-start.el (gnus-read-active-for-groups): Check only subscribed groups. X-Git-Tag: emacs-pretest-24.0.90~104^2~275^2~438^2~48^2~18 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=39486331737c01583b7aa61d5501727726c62411;p=emacs.git gnus-start.el (gnus-read-active-for-groups): Check only subscribed groups. --- diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog index 1db55dcdc3f..afc84de020a 100644 --- a/lisp/gnus/ChangeLog +++ b/lisp/gnus/ChangeLog @@ -1,3 +1,11 @@ +2010-09-10 Katsumi Yamaoka + + * gnus-start.el (gnus-read-active-for-groups): Check only subscribed + groups; replace mapcar with dolist which is a bit faster; pass groups + info to gnus-read-active-file-1. + (gnus-read-active-file-1): Scan only specified groups if the new + optional arg `infos' is given. + 2010-09-09 Lars Magne Ingebrigtsen * mail-source.el (mail-source-fetch-pop): Use pop3-movemail again. diff --git a/lisp/gnus/gnus-start.el b/lisp/gnus/gnus-start.el index 891777d864b..b2b47afe2d7 100644 --- a/lisp/gnus/gnus-start.el +++ b/lisp/gnus/gnus-start.el @@ -1801,14 +1801,15 @@ If SCAN, request a scan of that group as well." (cond ((gnus-check-backend-function 'retrieve-groups (car method)) (when (gnus-check-backend-function 'request-scan (car method)) - (gnus-request-scan nil method)) - (gnus-read-active-file-2 - (mapcar (lambda (info) - (gnus-group-real-name (gnus-info-group info))) - infos) - method)) + (dolist (info infos) + (gnus-request-scan (gnus-info-group info) method))) + (let (groups) + (gnus-read-active-file-2 + (dolist (info infos (nreverse groups)) + (push (gnus-group-real-name (gnus-info-group info)) groups)) + method))) ((gnus-check-backend-function 'request-list (car method)) - (gnus-read-active-file-1 method nil)) + (gnus-read-active-file-1 method nil infos)) (t (dolist (info infos) (gnus-activate-group (gnus-info-group info) nil nil method t)))))) @@ -2037,7 +2038,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) +(defun gnus-read-active-file-1 (method force &optional infos) (let (where mesg) (setq where (nth 1 method) mesg (format "Reading active file%s via %s..." @@ -2050,7 +2051,10 @@ If SCAN, request a scan of that group as well." (when (and gnus-agent (gnus-online method) (gnus-check-backend-function 'request-scan (car method))) - (gnus-request-scan nil method)) + (if infos + (dolist (info infos) + (gnus-request-scan (gnus-info-group info) method)) + (gnus-request-scan nil method))) (cond ((and (eq gnus-read-active-file 'some) (gnus-check-backend-function 'retrieve-groups (car method))