]> code.delx.au - gnu-emacs/commitdiff
nnvirtual.el (nnvirtual-create-mapping): Use the active info we already have if we...
authorLars Magne Ingebrigtsen <larsi@gnus.org>
Sun, 5 Sep 2010 23:20:25 +0000 (23:20 +0000)
committerKatsumi Yamaoka <yamaoka@jpl.org>
Sun, 5 Sep 2010 23:20:25 +0000 (23:20 +0000)
lisp/gnus/ChangeLog
lisp/gnus/gnus-start.el
lisp/gnus/nnvirtual.el

index 792a043ba62fe66732786f72d67bdf7ff7a68155..cc489021f64241bd7f80e06c84495ea5ca999450 100644 (file)
@@ -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>
index 9a923ff4d32e55e5b75e862a4cfab29ad8ea8b05..c3c7241b3c3cd8373f0874db6a61b3ba525c9bde 100644 (file)
@@ -1796,7 +1796,7 @@ If SCAN, request a scan of that group as well."
       (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.
index 94f43216b3853a53a4ff12654cbbddba37309be5..c94d1837fa9c96985b7b9d4bd04ff7a56d6860ff 100644 (file)
@@ -260,13 +260,11 @@ component group will show up when you enter the virtual group.")
     (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 @@ the result."
     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 @@ based on the marks on the component groups."
     ;; 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)))