(message-tool-bar-gnome): Check if `flyspell-mode' is
[gnus] / lisp / nnfolder.el
index 68e4f24..b4019d9 100644 (file)
@@ -1,6 +1,7 @@
 ;;; nnfolder.el --- mail folder access for Gnus
-;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
-;;        Free Software Foundation, Inc.
+
+;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+;;   2005, 2006 Free Software Foundation, Inc.
 
 ;; Author: Simon Josefsson <simon@josefsson.org> (adding MARKS)
 ;;      ShengHuo Zhu <zsh@cs.rochester.edu> (adding NOV)
@@ -23,8 +24,8 @@
 
 ;; 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.
+;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+;; Boston, MA 02110-1301, USA.
 
 ;;; Commentary:
 
@@ -200,7 +201,7 @@ the group.  Then the marks file will be regenerated properly by Gnus.")
                       ((search-backward (concat "\n" nnfolder-article-marker)
                                         nil t)
                        (goto-char (match-end 0))
-                       (setq num (string-to-int
+                       (setq num (string-to-number
                                   (buffer-substring
                                    (point) (point-at-eol))))
                        (goto-char start)
@@ -210,7 +211,7 @@ the group.  Then the marks file will be regenerated properly by Gnus.")
                      (search-forward (concat "\n" nnfolder-article-marker)
                                      nil t)
                      (progn
-                       (setq num (string-to-int
+                       (setq num (string-to-number
                                   (buffer-substring
                                    (point) (point-at-eol))))
                        (> num article))
@@ -285,7 +286,7 @@ the group.  Then the marks file will be regenerated properly by Gnus.")
            (cons nnfolder-current-group
                  (if (search-forward (concat "\n" nnfolder-article-marker)
                                      nil t)
-                     (string-to-int (buffer-substring
+                     (string-to-number (buffer-substring
                                      (point) (point-at-eol)))
                    -1))))))))
 
@@ -370,10 +371,11 @@ the group.  Then the marks file will be regenerated properly by Gnus.")
 (deffoo nnfolder-request-create-group (group &optional server args)
   (nnfolder-possibly-change-group nil server)
   (nnmail-activate 'nnfolder)
-  (when group
-    (unless (assoc group nnfolder-group-alist)
-      (push (list group (cons 1 0)) nnfolder-group-alist)
-      (nnfolder-save-active nnfolder-group-alist nnfolder-active-file)
+  (when (and group
+            (not (assoc group nnfolder-group-alist)))
+    (push (list group (cons 1 0)) nnfolder-group-alist)
+    (nnfolder-save-active nnfolder-group-alist nnfolder-active-file)
+    (save-current-buffer
       (nnfolder-read-folder group)))
   t)
 
@@ -466,8 +468,8 @@ the group.  Then the marks file will be regenerated properly by Gnus.")
       (nnfolder-save-active nnfolder-group-alist nnfolder-active-file)
       (gnus-sorted-difference articles (nreverse deleted-articles)))))
 
-(deffoo nnfolder-request-move-article (article group server
-                                              accept-form &optional last)
+(deffoo nnfolder-request-move-article (article group server accept-form 
+                                              &optional last move-is-internal)
   (save-excursion
     (let ((buf (get-buffer-create " *nnfolder move*"))
          result)
@@ -824,7 +826,7 @@ deleted.  Point is left where the deleted region was."
       (insert "\n"))
     (forward-char -1)
     (insert (format (concat nnfolder-article-marker "%d   %s\n")
-                   (cdr group-art) (current-time-string)))))
+                   (cdr group-art) (message-make-date)))))
 
 (defun nnfolder-active-number (group)
   ;; Find the next article number in GROUP.
@@ -872,8 +874,9 @@ deleted.  Point is left where the deleted region was."
         (buffer (set-buffer
                  (let ((nnheader-file-coding-system
                         nnfolder-file-coding-system))
-                   (nnheader-find-file-noselect file)))))
+                   (nnheader-find-file-noselect file t)))))
     (mm-enable-multibyte) ;; Use multibyte buffer for future copying.
+    (buffer-disable-undo)
     (if (equal (cadr (assoc group nnfolder-scantime-alist))
               (nth 5 (file-attributes file)))
        ;; This looks up-to-date, so we don't do any scanning.
@@ -900,7 +903,6 @@ deleted.  Point is left where the deleted region was."
              maxid start end newscantime
              novbuf articles newnum
              buffer-read-only)
-         (buffer-disable-undo)
          (setq maxid (cdr active))
 
          (unless (or gnus-nov-is-evil nnfolder-nov-is-evil
@@ -1027,9 +1029,7 @@ This command does not work if you use short group names."
       (when (not (message-mail-file-mbox-p file))
        (ignore-errors
          (delete-file file)))))
-  (let ((files (directory-files nnfolder-directory))
-       file)
-    (while (setq file (pop files))
+    (dolist (file (directory-files nnfolder-directory))
       (when (and (not (backup-file-name-p file))
                 (message-mail-file-mbox-p
                  (nnheader-concat nnfolder-directory file)))
@@ -1044,7 +1044,7 @@ This command does not work if you use short group names."
          (nnfolder-possibly-change-folder file)
          (nnfolder-possibly-change-group file)
          (nnfolder-close-group file))))
-    (nnheader-message 5 "")))
+    (nnheader-message 5 ""))
 
 (defun nnfolder-group-pathname (group)
   "Make file name for GROUP."
@@ -1071,7 +1071,8 @@ This command does not work if you use short group names."
     (gnus-make-directory (file-name-directory (buffer-file-name)))
     (let ((coding-system-for-write
           (or nnfolder-file-coding-system-for-write
-              nnfolder-file-coding-system)))
+              nnfolder-file-coding-system))
+         (copyright-update nil))
       (save-buffer)))
   (unless (or gnus-nov-is-evil nnfolder-nov-is-evil)
     (nnfolder-save-nov)))
@@ -1174,7 +1175,7 @@ This command does not work if you use short group names."
       (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 nnfolder-marks (gnus-update-alist-soft
@@ -1195,16 +1196,16 @@ This command does not work if you use short group names."
     (nnheader-message 8 "Updating marks for %s..." group)
     (nnfolder-open-marks group server)
     ;; Update info using `nnfolder-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) nnfolder-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) nnfolder-marks))
+               (gnus-info-marks info))
+              t)))
+         gnus-article-mark-lists)
     (let ((seen (cdr (assq 'read nnfolder-marks))))
       (gnus-info-set-read info
                          (if (and (integerp (car seen))
@@ -1240,7 +1241,7 @@ This command does not work if you use short group names."
                        nnfolder-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 nnfolder-open-marks (group server)
   (let ((file (nnfolder-group-marks-pathname group)))
@@ -1272,4 +1273,5 @@ This command does not work if you use short group names."
 
 (provide 'nnfolder)
 
+;;; arch-tag: a040d0f4-4f4e-445f-8972-839575c5f7e6
 ;;; nnfolder.el ends here