* nnheader.el (nnheader-read-timeout, nnheader-accept-process-output):
[gnus] / lisp / nnvirtual.el
index 6657369..4b744f4 100644 (file)
@@ -1,6 +1,7 @@
 ;;; nnvirtual.el --- virtual newsgroups access for Gnus
-;; Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
-;;        Free Software Foundation, Inc.
+
+;; Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+;;   2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
 
 ;; Author: David Moore <dmoore@ucsd.edu>
 ;;     Lars Magne Ingebrigtsen <larsi@gnus.org>
 
 ;; This file is part of GNU Emacs.
 
-;; GNU Emacs is free software; you can redistribute it and/or modify
+;; GNU Emacs is free software: you can redistribute it and/or modify
 ;; it under the terms of the GNU General Public License as published by
-;; the Free Software Foundation; either version 2, or (at your option)
-;; any later version.
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
 
 ;; GNU Emacs is distributed in the hope that it will be useful,
 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -20,9 +21,7 @@
 ;; GNU General Public License for more details.
 
 ;; You should have received a copy of the GNU General Public License
-;; along with GNU Emacs; see the file COPYING.  If not, write to the
-;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-;; Boston, MA 02111-1307, USA.
+;; along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.
 
 ;;; Commentary:
 
@@ -82,8 +81,7 @@ component group will show up when you enter the virtual group.")
 
 (defvoo nnvirtual-status-string "")
 
-(eval-and-compile
-  (autoload 'gnus-cache-articles-in-group "gnus-cache"))
+(autoload 'gnus-cache-articles-in-group "gnus-cache")
 
 \f
 
@@ -383,14 +381,11 @@ component group will show up when you enter the virtual group.")
 
 (defun nnvirtual-convert-headers ()
   "Convert HEAD headers into NOV headers."
-  (save-excursion
-    (set-buffer nntp-server-buffer)
+  (with-current-buffer nntp-server-buffer
     (let* ((dependencies (make-vector 100 0))
-          (headers (gnus-get-newsgroup-headers dependencies))
-          header)
+          (headers (gnus-get-newsgroup-headers dependencies)))
       (erase-buffer)
-      (while (setq header (pop headers))
-       (nnheader-insert-nov header)))))
+      (mapc 'nnheader-insert-nov headers))))
 
 
 (defun nnvirtual-update-xref-header (group article prefix system-name)
@@ -464,7 +459,7 @@ If UPDATE-P is not nil, call gnus-group-update-group on the components."
                                   (nnvirtual-partition-sequence (cdr ml)))))
                         (gnus-info-marks (gnus-get-info
                                           (nnvirtual-current-group))))))
-         mark type groups carticles info entry)
+         type groups info)
 
       ;; Ok, atomically move all of the (un)read info, clear any old
       ;; marks, and move all of the current marks.  This way if someone
@@ -473,13 +468,12 @@ If UPDATE-P is not nil, call gnus-group-update-group on the components."
        ;; move (un)read
        ;; bind for workaround guns-update-read-articles
        (let ((gnus-newsgroup-active nil))
-         (while (setq entry (pop unreads))
+         (dolist (entry unreads)
            (gnus-update-read-articles (car entry) (cdr entry))))
 
        ;; clear all existing marks on the component groups
-       (setq groups nnvirtual-component-groups)
-       (while groups
-         (when (and (setq info (gnus-get-info (pop groups)))
+       (dolist (group nnvirtual-component-groups)
+         (when (and (setq info (gnus-get-info group))
                     (gnus-info-marks info))
            (gnus-info-set-marks
             info
@@ -490,18 +484,17 @@ If UPDATE-P is not nil, call gnus-group-update-group on the components."
        ;; Ok, currently type-marks is an assq list with keys of a mark type,
        ;; with data of an assq list with keys of component group names
        ;; and the articles which correspond to that key/group pair.
-       (while (setq mark (pop type-marks))
+       (dolist (mark type-marks)
          (setq type (car mark))
          (setq groups (cdr mark))
-         (while (setq carticles (pop groups))
+         (dolist (carticles groups)
            (gnus-add-marked-articles (car carticles) type (cdr carticles)
                                      nil t))))
 
       ;; possibly update the display, it is really slow
       (when update-p
-       (setq groups nnvirtual-component-groups)
-       (while groups
-         (gnus-group-update-group (pop groups) t))))))
+       (dolist (group nnvirtual-component-groups)
+         (gnus-group-update-group group t))))))
 
 
 (defun nnvirtual-current-group ()
@@ -721,7 +714,7 @@ based on the marks on the component groups."
                    tot (+ tot size)
                    M (max M size))))
          nnvirtual-component-groups)
-    
+
     ;; Number of articles in the virtual group.
     (setq nnvirtual-mapping-len tot)
 
@@ -783,10 +776,9 @@ based on the marks on the component groups."
 
     ;; Remove any empty marks lists, and store.
     (setq nnvirtual-mapping-marks nil)
-    (while marks
-      (if (cdr (car marks))
-         (push (car marks) nnvirtual-mapping-marks))
-      (setq marks (cdr marks)))
+    (dolist (mark marks)
+      (when (cdr mark)
+       (push mark nnvirtual-mapping-marks)))
 
     ;; We need to convert the unreads to reads.  We compress the
     ;; sequence as we go, otherwise it could be huge.
@@ -817,4 +809,5 @@ based on the marks on the component groups."
 
 (provide 'nnvirtual)
 
+;; arch-tag: ca8c8ad9-1bd8-4b0f-9722-90dc645a45f5
 ;;; nnvirtual.el ends here