This commit was generated by cvs2svn to compensate for changes in r5822,
[elisp/gnus.git-] / lisp / nnvirtual.el
index df61450..4829341 100644 (file)
@@ -43,7 +43,7 @@
 
 (nnoo-declare nnvirtual)
 
-(defvoo nnvirtual-always-rescan nil
+(defvoo nnvirtual-always-rescan t
   "*If non-nil, always scan groups for unread articles when entering a group.
 If this variable is nil (which is the default) and you read articles
 in a component group after the virtual group has been activated, the
@@ -259,12 +259,14 @@ to virtual article number.")
     (setq nnvirtual-current-group nil)
     (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 group (gnus-get-info group))))
-    (setq nnvirtual-current-group group)
+       (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))))
 
@@ -272,9 +274,12 @@ to virtual article number.")
 (deffoo nnvirtual-request-type (group &optional article)
   (if (not article)
       'unknown
-    (let ((mart (nnvirtual-map-article article)))
-      (when mart
-       (gnus-request-type (car mart) (cdr mart))))))
+    (if (numberp article)
+       (let ((mart (nnvirtual-map-article article)))
+         (if mart
+             (gnus-request-type (car mart) (cdr mart))))
+      (gnus-request-type
+       nnvirtual-last-accessed-component-group nil))))
 
 (deffoo nnvirtual-request-update-mark (group article mark)
   (let* ((nart (nnvirtual-map-article article))
@@ -399,7 +404,7 @@ to virtual article number.")
       (replace-match "" t t))
     (goto-char (point-min))
     (when (re-search-forward
-          (concat (gnus-group-real-name group) ":[0-9]+")
+          (concat (regexp-quote (gnus-group-real-name group)) ":[0-9]+")
           nil t)
       (replace-match "" t t))
     (unless (= (point) (point-max))