diff lisp/gnus/gnus-start.el @ 110289:ed38b7a7f11e

gnus-start.el (gnus-get-unread-articles): Set the number of unread articles of every unchecked group to t, which means unknown since the server has never been opened.
author Katsumi Yamaoka <yamaoka@jpl.org>
date Thu, 09 Sep 2010 06:15:13 +0000
parents db1e98f7484b
children 593e2b90e58b
line wrap: on
line diff
--- a/lisp/gnus/gnus-start.el	Thu Sep 09 06:13:05 2010 +0000
+++ b/lisp/gnus/gnus-start.el	Thu Sep 09 06:15:13 2010 +0000
@@ -1692,7 +1692,7 @@
 	 (gnus-agent-article-local-times 0)
 	 (archive-method (gnus-server-to-method "archive"))
 	 infos info group active method cmethod
-	 method-type method-group-list)
+	 method-type method-group-list entry)
     (gnus-message 6 "Checking new news...")
 
     (while newsrc
@@ -1737,12 +1737,18 @@
 	(push (setq method-group-list (list method method-type nil))
 	      type-cache))
       ;; Only add groups that need updating.
-      (when (<= (gnus-info-level info)
-		(if (eq (cadr method-group-list) 'foreign)
-		    foreign-level
-		  alevel))
-	(setcar (nthcdr 2 method-group-list)
-		(cons info (nth 2 method-group-list)))))
+      (if (<= (gnus-info-level info)
+	      (if (eq (cadr method-group-list) 'foreign)
+		  foreign-level
+		alevel))
+	  (setcar (nthcdr 2 method-group-list)
+		  (cons info (nth 2 method-group-list)))
+	;; The group is inactive, so we nix out the number of unread articles.
+	;; It leads `(gnus-group-unread group)' to return t.  See also
+	;; `gnus-group-prepare-flat'.
+	(unless active
+	  (when (setq entry (gnus-group-entry group))
+	    (setcar entry t)))))
 
     ;; Sort the methods based so that the primary and secondary
     ;; methods come first.  This is done for legacy reasons to try to