Synch to No Gnus 200411120157.
[elisp/gnus.git-] / lisp / nnml.el
index ba778e2..712afa0 100644 (file)
@@ -33,7 +33,6 @@
 ;;; Code:
 
 (eval-when-compile (require 'cl))
-(eval-when-compile (require 'gnus-clfns))
 
 (require 'gnus)
 (require 'nnheader)
@@ -447,10 +446,8 @@ marks file will be regenerated properly by Gnus.")
            nnml-current-directory t
            (concat nnheader-numerical-short-files
                    "\\|" (regexp-quote nnml-nov-file-name) "$"
-                   "\\|" (regexp-quote nnml-marks-file-name) "$")))
-         article)
-      (while articles
-       (setq article (pop articles))
+                   "\\|" (regexp-quote nnml-marks-file-name) "$"))))
+      (dolist (article articles)
        (when (file-writable-p article)
          (nnheader-message 5 "Deleting article %s in %s..." article group)
          (funcall nnmail-delete-file-function article))))
@@ -475,12 +472,10 @@ marks file will be regenerated properly by Gnus.")
       ;; We move the articles file by file instead of renaming
       ;; the directory -- there may be subgroups in this group.
       ;; One might be more clever, I guess.
-      (let ((files (nnheader-article-to-file-alist old-dir)))
-       (while files
-         (rename-file
-          (concat old-dir (cdar files))
-          (concat new-dir (cdar files)))
-         (pop files)))
+      (dolist (file (nnheader-article-to-file-alist old-dir))
+       (rename-file
+        (concat old-dir (cdr file))
+        (concat new-dir (cdr file))))
       ;; Move .overview file.
       (let ((overview (concat old-dir nnml-nov-file-name)))
        (when (file-exists-p overview)
@@ -574,7 +569,7 @@ marks file will be regenerated properly by Gnus.")
                  (search-forward id nil t)) ; We find the ID.
        ;; And the id is in the fourth field.
        (if (not (and (search-backward "\t" nil t 4)
-                     (not (search-backward"\t" (gnus-point-at-bol) t))))
+                     (not (search-backward "\t" (point-at-bol) t))))
            (forward-line 1)
          (beginning-of-line)
          (setq found t)
@@ -701,7 +696,7 @@ marks file will be regenerated properly by Gnus.")
     (nnheader-insert-nov headers)))
 
 (defsubst nnml-header-value ()
-  (buffer-substring (match-end 0) (gnus-point-at-eol)))
+  (buffer-substring (match-end 0) (point-at-eol)))
 
 (defun nnml-parse-head (chars &optional number)
   "Parse the head of the current buffer."
@@ -772,12 +767,10 @@ marks file will be regenerated properly by Gnus.")
   (unless (member (file-truename dir) seen)
     (push (file-truename dir) seen)
     ;; We descend recursively
-    (let ((dirs (directory-files dir t nil t))
-         dir)
-      (while (setq dir (pop dirs))
-       (when (and (not (string-match "^\\." (file-name-nondirectory dir)))
-                  (file-directory-p dir))
-         (nnml-generate-nov-databases-1 dir seen))))
+    (dolist (dir (directory-files dir t nil t))
+      (when (and (not (string-match "^\\." (file-name-nondirectory dir)))
+                (file-directory-p dir))
+       (nnml-generate-nov-databases-1 dir seen)))
     ;; Do this directory.
     (let ((files (sort (nnheader-article-to-file-alist dir)
                       'car-less-than-car)))
@@ -804,9 +797,7 @@ marks file will be regenerated properly by Gnus.")
     (push (list group
                (cons (or (caar files) (1+ last))
                      (max last
-                          (or (let ((f files))
-                                (while (cdr f) (setq f (cdr f)))
-                                (caar f))
+                          (or (caar (last files))
                               0))))
          nnml-group-alist)))
 
@@ -925,7 +916,7 @@ Use the nov database for the current group if available."
       (let ((range (nth 0 action))
            (what  (nth 1 action))
            (marks (nth 2 action)))
-       (assert (or (eq what 'add) (eq what 'del)) t
+       (assert (or (eq what 'add) (eq what 'del)) nil
                "Unknown request-set-mark action: %s" what)
        (dolist (mark marks)
          (setq nnml-marks (gnus-update-alist-soft
@@ -943,16 +934,16 @@ Use the nov database for the current group if available."
     (nnheader-message 8 "Updating marks for %s..." group)
     (nnml-open-marks group server)
     ;; Update info using `nnml-marks'.
-    (mapcar (lambda (pred)
-             (unless (memq (cdr pred) gnus-article-unpropagated-mark-lists)
-               (gnus-info-set-marks
-                info
-                (gnus-update-alist-soft
-                 (cdr pred)
-                 (cdr (assq (cdr pred) nnml-marks))
-                 (gnus-info-marks info))
-                t)))
-           gnus-article-mark-lists)
+    (mapc (lambda (pred)
+           (unless (memq (cdr pred) gnus-article-unpropagated-mark-lists)
+             (gnus-info-set-marks
+              info
+              (gnus-update-alist-soft
+               (cdr pred)
+               (cdr (assq (cdr pred) nnml-marks))
+               (gnus-info-marks info))
+              t)))
+         gnus-article-mark-lists)
     (let ((seen (cdr (assq 'read nnml-marks))))
       (gnus-info-set-read info
                          (if (and (integerp (car seen))
@@ -986,7 +977,7 @@ Use the nov database for the current group if available."
                        nnml-marks-modtime))
       (error (or (gnus-yes-or-no-p
                  (format "Could not write to %s (%s).  Continue? " file err))
-                (error "Cannot write to %s (%s)" err))))))
+                (error "Cannot write to %s (%s)" file err))))))
 
 (defun nnml-open-marks (group server)
   (let ((file (expand-file-name