* (dgnushack-make-package): Fix typo.
[elisp/gnus.git-] / lisp / nnvirtual.el
index b1d4119..1b745ee 100644 (file)
@@ -1,5 +1,5 @@
 ;;; nnvirtual.el --- virtual newsgroups access for Gnus
-;; Copyright (C) 1994,95,96,97,98 Free Software Foundation, Inc.
+;; Copyright (C) 1994,95,96,97,98,99 Free Software Foundation, Inc.
 
 ;; Author: David Moore <dmoore@ucsd.edu>
 ;;     Lars Magne Ingebrigtsen <larsi@gnus.org>
@@ -219,7 +219,9 @@ to virtual article number.")
          (if buffer
              (save-excursion
                (set-buffer buffer)
-               (gnus-request-article-this-buffer (cdr amap) cgroup))
+               ;; We bind this here to avoid double decoding.
+               (let ((gnus-article-decode-hook nil))
+                 (gnus-request-article-this-buffer (cdr amap) cgroup)))
            (gnus-request-article (cdr amap) cgroup))))))))
 
 
@@ -287,6 +289,7 @@ to virtual article number.")
         ;; The component group might be a virtual group.
         (nmark (gnus-request-update-mark cgroup (cdr nart) mark)))
     (when (and nart
+              (memq mark gnus-auto-expirable-marks)
               (= mark nmark)
               (gnus-group-auto-expirable-p cgroup))
       (setq mark gnus-expirable-mark)))
@@ -452,7 +455,8 @@ If UPDATE-P is not nil, call gnus-group-update-group on the components."
       ;; hits C-g, you won't leave the component groups in a half-way state.
       (progn
        ;; move (un)read
-       (let ((gnus-newsgroup-active nil)) ;workaround guns-update-read-articles
+       ;; bind for workaround guns-update-read-articles
+       (let ((gnus-newsgroup-active nil))
          (while (setq entry (pop unreads))
            (gnus-update-read-articles (car entry) (cdr entry))))