changeset 110208:7e0143c80273

nnvirtual.el (nnvirtual-create-mapping): Use the active info we already have if we're in a main Gnus `g' run.
author Katsumi Yamaoka <yamaoka@jpl.org>
date Sun, 05 Sep 2010 23:20:25 +0000
parents 73e771a95111
children bafb89eacad6
files lisp/gnus/ChangeLog lisp/gnus/gnus-start.el lisp/gnus/nnvirtual.el
diffstat 3 files changed, 13 insertions(+), 10 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/gnus/ChangeLog	Sun Sep 05 23:13:43 2010 +0000
+++ b/lisp/gnus/ChangeLog	Sun Sep 05 23:20:25 2010 +0000
@@ -1,5 +1,8 @@
 2010-09-05  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 
+	* nnvirtual.el (nnvirtual-create-mapping): Use the active info we
+	already have if we're in a main Gnus `g' run.
+
 	* gnus-start.el (gnus-method-rank): Get info for virtual groups last.
 
 2010-09-05  Katsumi Yamaoka  <yamaoka@jpl.org>
--- a/lisp/gnus/gnus-start.el	Sun Sep 05 23:13:43 2010 +0000
+++ b/lisp/gnus/gnus-start.el	Sun Sep 05 23:20:25 2010 +0000
@@ -1796,7 +1796,7 @@
       (gnus-read-active-file-1 method nil))
      (t
       (dolist (info infos)
-	(gnus-activate-group (gnus-info-group info) nil nil method))))))
+	(gnus-activate-group (gnus-info-group info) nil t method))))))
 
 ;; Create a hash table out of the newsrc alist.  The `car's of the
 ;; alist elements are used as keys.
--- a/lisp/gnus/nnvirtual.el	Sun Sep 05 23:13:43 2010 +0000
+++ b/lisp/gnus/nnvirtual.el	Sun Sep 05 23:20:25 2010 +0000
@@ -260,13 +260,11 @@
     (nnheader-report 'nnvirtual "No component groups in %s" group))
    (t
     (setq nnvirtual-current-group group)
-    (when (or (not dont-check)
-	      nnvirtual-always-rescan)
-      (nnvirtual-create-mapping)
-      (when nnvirtual-always-rescan
-	(nnvirtual-request-update-info
-	 (nnvirtual-current-group)
-	 (gnus-get-info (nnvirtual-current-group)))))
+    (nnvirtual-create-mapping dont-check)
+    (when nnvirtual-always-rescan
+      (nnvirtual-request-update-info
+       (nnvirtual-current-group)
+       (gnus-get-info (nnvirtual-current-group))))
     (nnheader-insert "211 %d 1 %d %s\n"
 		     nnvirtual-mapping-len nnvirtual-mapping-len group))))
 
@@ -670,7 +668,7 @@
     carticles))
 
 
-(defun nnvirtual-create-mapping ()
+(defun nnvirtual-create-mapping (dont-check)
   "Build the tables necessary to map between component (group, article) to virtual article.
 Generate the set of read messages and marks for the virtual group
 based on the marks on the component groups."
@@ -689,7 +687,9 @@
     ;; Into all-marks we put (g marks).
     ;; We also increment cnt and tot here, and compute M (max of sizes).
     (mapc (lambda (g)
-	    (setq active (gnus-activate-group g)
+	    (setq active (or (and dont-check
+				  (gnus-active g))
+			     (gnus-activate-group g))
 		  min (car active)
 		  max (cdr active))
 	    (when (and active (>= max min) (not (zerop max)))