(cl): Enclose the requiring procedure with `eval-when-compile'.
[elisp/gnus.git-] / lisp / nnvirtual.el
index 61fbc2b..fd25bf6 100644 (file)
@@ -31,6 +31,7 @@
 
 ;;; Code:
 
+(eval-when-compile (require 'cl))
 (require 'nntp)
 (require 'nnheader)
 (require 'gnus)
@@ -39,7 +40,6 @@
 (require 'gnus-start)
 (require 'gnus-sum)
 (require 'gnus-msg)
-(require 'cl)
 
 (nnoo-declare nnvirtual)
 
@@ -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))))))))
 
 
@@ -360,6 +362,15 @@ to virtual article number.")
                       (cdr gnus-message-group-art)))))
       (gnus-request-post (gnus-find-method-for-group group)))))
 
+
+(deffoo nnvirtual-request-expire-articles (articles group 
+                                                   &optional server force)
+  (nnvirtual-possibly-change-server server)
+  (setq nnvirtual-component-groups
+       (delete (nnvirtual-current-group) nnvirtual-component-groups))
+  (dolist (group nnvirtual-component-groups)
+    (gnus-group-expire-articles-1 group)))
+
 \f
 ;;; Internal functions.