changeset 110222:9def4c1af9b9

gnus-start.el (gnus-get-unread-articles): Don't bother with groups that aren't going to be activated.
author Katsumi Yamaoka <yamaoka@jpl.org>
date Mon, 06 Sep 2010 00:44:55 +0000
parents f0d95837f863
children 109e3a627792
files lisp/gnus/ChangeLog lisp/gnus/gnus-start.el
diffstat 2 files changed, 16 insertions(+), 14 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/gnus/ChangeLog	Mon Sep 06 00:41:06 2010 +0000
+++ b/lisp/gnus/ChangeLog	Mon Sep 06 00:44:55 2010 +0000
@@ -1,5 +1,8 @@
 2010-09-05  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 
+	* 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.
 
--- a/lisp/gnus/gnus-start.el	Mon Sep 06 00:41:06 2010 +0000
+++ b/lisp/gnus/gnus-start.el	Mon Sep 06 00:44:55 2010 +0000
@@ -1734,8 +1734,13 @@
 		'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 @@
 	    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)