Synch with Oort Gnus.
[elisp/gnus.git-] / lisp / nnfolder.el
index 96c53bb..876647f 100644 (file)
@@ -1,5 +1,5 @@
 ;;; nnfolder.el --- mail folder access for Gnus
-;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001
+;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
 ;;        Free Software Foundation, Inc.
 
 ;; Author: Simon Josefsson <simon@josefsson.org> (adding MARKS)
@@ -430,7 +430,7 @@ the group.  Then the marks file will be regenerated properly by Gnus.")
       (nnfolder-save-buffer)
       (nnfolder-adjust-min-active newsgroup)
       (nnfolder-save-active nnfolder-group-alist nnfolder-active-file)
-      (gnus-sorted-complement articles (nreverse deleted-articles)))))
+      (gnus-sorted-difference articles (nreverse deleted-articles)))))
 
 (deffoo nnfolder-request-move-article (article group server
                                               accept-form &optional last)
@@ -491,7 +491,7 @@ the group.  Then the marks file will be regenerated properly by Gnus.")
        (while (re-search-backward (concat "^" nnfolder-article-marker) nil t)
          (delete-region (point) (progn (forward-line 1) (point))))
        (when nnmail-cache-accepted-message-ids
-         (nnmail-cache-insert (nnmail-fetch-field "message-id")))
+         (nnmail-cache-insert (nnmail-fetch-field "message-id") group))
        (setq result (if (stringp group)
                         (list (cons group (nnfolder-active-number group)))
                       (setq art-group
@@ -519,9 +519,11 @@ the group.  Then the marks file will be regenerated properly by Gnus.")
     (goto-char (point-min))
     (if (not (looking-at "X-From-Line: "))
        (insert "From nobody " (current-time-string) "\n")
-      (save-match-data
-       (mail-header-unfold-field))
-      (replace-match "From "))
+      (replace-match "From ")
+      (forward-line 1)
+      (while (looking-at "[ \t]")
+       (delete-char -1)
+       (forward-line 1)))
     (nnfolder-normalize-buffer)
     (set-buffer nnfolder-current-buffer)
     (goto-char (point-min))
@@ -547,12 +549,12 @@ the group.  Then the marks file will be regenerated properly by Gnus.")
   (if (not force)
       ()                               ; Don't delete the articles.
     ;; Delete the file that holds the group.
-    (ignore-errors
-      (delete-file (nnfolder-group-pathname group))
-      (when (file-exists-p (nnfolder-group-nov-pathname group))
-       (delete-file (nnfolder-group-nov-pathname group)))
-      (when (file-exists-p (nnfolder-group-marks-pathname group))
-       (delete-file (nnfolder-group-marks-pathname group)))))
+    (let ((data (nnfolder-group-pathname group))
+         (nov (nnfolder-group-nov-pathname group))
+         (mrk (nnfolder-group-marks-pathname group)))
+      (ignore-errors (delete-file data))
+      (ignore-errors (delete-file nov))
+      (ignore-errors (delete-file mrk))))
   ;; Remove the group from all structures.
   (setq nnfolder-group-alist
        (delq (assoc group nnfolder-group-alist) nnfolder-group-alist)
@@ -712,7 +714,8 @@ deleted.  Point is left where the deleted region was."
                (let ((nnmail-file-coding-system
                       (or nnfolder-file-coding-system-for-write
                           nnfolder-file-coding-system-for-write)))
-                 (nnmail-write-region 1 1 file t 'nomesg)))
+                 (nnmail-write-region (point-min) (point-min)
+                                      file t 'nomesg)))
              (when (setq nnfolder-current-buffer (nnfolder-read-folder group))
                (set-buffer nnfolder-current-buffer)
                (push (list group nnfolder-current-buffer)
@@ -1233,7 +1236,8 @@ This command does not work if you use short group names."
        (push (cons 'read (gnus-info-read info)) nnfolder-marks)
        (dolist (el gnus-article-unpropagated-mark-lists)
          (setq nnfolder-marks (gnus-remassoc el nnfolder-marks)))
-       (nnfolder-save-marks group server)))))
+       (nnfolder-save-marks group server)
+       (nnheader-message 7 "Bootstrapping marks for %s...done" group)))))
 
 (provide 'nnfolder)