From: Lars Magne Ingebrigtsen Date: Sun, 5 Sep 2010 22:40:01 +0000 (+0200) Subject: Don't bother with groups that aren't going to be activated. X-Git-Url: http://cgit.sxemacs.org/?p=gnus;a=commitdiff_plain;h=b934755c65517255bd7ebfebbcf017643dd94b85 Don't bother with groups that aren't going to be activated. --- diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 24ba3431f..31698f64e 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,5 +1,8 @@ 2010-09-05 Lars Magne Ingebrigtsen + * gnus-start.el (gnus-get-unread-articles): Don't bother with groups + that aren't going to be activated. + * gnus-html.el (gnus-article-html): Allow calling without specifying the handle. In that case, dissect the buffer first. diff --git a/lisp/gnus-start.el b/lisp/gnus-start.el index 56219542d..e7e4dfd92 100644 --- a/lisp/gnus-start.el +++ b/lisp/gnus-start.el @@ -1734,8 +1734,13 @@ If SCAN, request a scan of that group as well." 'foreign))) (push (setq method-group-list (list method method-type nil)) type-cache)) - (setcar (nthcdr 2 method-group-list) - (cons info (nth 2 method-group-list)))) + ;; Only add groups that need updating. + (when (<= (gnus-info-level info) + (if (eq method-type 'foreign) + foreign-level + alevel)) + (setcar (nthcdr 2 method-group-list) + (cons info (nth 2 method-group-list))))) ;; Sort the methods based so that the primary and secondary ;; methods come first. This is done for legacy reasons to try to @@ -1753,19 +1758,13 @@ If SCAN, request a scan of that group as well." infos (nth 2 (car type-cache))) (pop type-cache) - (when method + (when (and method + infos) ;; See if any of the groups from this method require updating. - (when (block nil - (dolist (info infos) - (when (<= (gnus-info-level info) - (if (eq method-type 'foreign) - foreign-level - alevel)) - (return t)))) - (gnus-read-active-for-groups method infos) - (dolist (info infos) - (inline (gnus-get-unread-articles-in-group - info (gnus-active (gnus-info-group info)))))))) + (gnus-read-active-for-groups method infos) + (dolist (info infos) + (inline (gnus-get-unread-articles-in-group + info (gnus-active (gnus-info-group info))))))) (gnus-message 6 "Checking new news...done"))) (defun gnus-method-rank (type method)