emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] Changes to emacs/lisp/gnus/nnfolder.el,v


From: Miles Bader
Subject: [Emacs-diffs] Changes to emacs/lisp/gnus/nnfolder.el,v
Date: Sun, 28 Oct 2007 09:19:20 +0000

CVSROOT:        /cvsroot/emacs
Module name:    emacs
Changes by:     Miles Bader <miles>     07/10/28 09:18:40

Index: lisp/gnus/nnfolder.el
===================================================================
RCS file: /cvsroot/emacs/emacs/lisp/gnus/nnfolder.el,v
retrieving revision 1.29
retrieving revision 1.30
diff -u -b -r1.29 -r1.30
--- lisp/gnus/nnfolder.el       26 Jul 2007 05:27:02 -0000      1.29
+++ lisp/gnus/nnfolder.el       28 Oct 2007 09:18:32 -0000      1.30
@@ -203,7 +203,7 @@
                        (goto-char (match-end 0))
                        (setq num (string-to-number
                                   (buffer-substring
-                                   (point) (gnus-point-at-eol))))
+                                   (point) (point-at-eol))))
                        (goto-char start)
                        (< num article)))
                      ;; Check that we are before an article with a
@@ -213,7 +213,7 @@
                      (progn
                        (setq num (string-to-number
                                   (buffer-substring
-                                   (point) (gnus-point-at-eol))))
+                                   (point) (point-at-eol))))
                        (> num article))
                      ;; Discard any article numbers before the one we're
                      ;; now looking at.
@@ -287,18 +287,23 @@
                  (if (search-forward (concat "\n" nnfolder-article-marker)
                                      nil t)
                      (string-to-number (buffer-substring
-                                     (point) (gnus-point-at-eol)))
+                                     (point) (point-at-eol)))
                    -1))))))))
 
 (deffoo nnfolder-request-group (group &optional server dont-check)
   (nnfolder-possibly-change-group group server t)
   (save-excursion
-    (if (not (assoc group nnfolder-group-alist))
-       (nnheader-report 'nnfolder "No such group: %s" group)
-      (if dont-check
-         (progn
+    (cond ((not (assoc group nnfolder-group-alist))
+          (nnheader-report 'nnfolder "No such group: %s" group))
+         ((file-directory-p (nnfolder-group-pathname group))
+          (nnheader-report 'nnfolder "%s is a directory"
+                           (file-name-as-directory
+                            (let ((nnmail-pathname-coding-system nil))
+                              (nnfolder-group-pathname group)))))
+         (dont-check
            (nnheader-report 'nnfolder "Selected group %s" group)
            t)
+         (t
        (let* ((active (assoc group nnfolder-group-alist))
               (group (car active))
               (range (cadr active)))
@@ -371,13 +376,21 @@
 (deffoo nnfolder-request-create-group (group &optional server args)
   (nnfolder-possibly-change-group nil server)
   (nnmail-activate 'nnfolder)
-  (when (and group
-            (not (assoc group nnfolder-group-alist)))
+  (cond ((zerop (length group))
+        (nnheader-report 'nnfolder "Invalid (empty) group name"))
+       ((file-directory-p (nnfolder-group-pathname group))
+        (nnheader-report 'nnfolder "%s is a directory"
+                         (file-name-as-directory
+                          (let ((nnmail-pathname-coding-system nil))
+                            (nnfolder-group-pathname group)))))
+       ((assoc group nnfolder-group-alist)
+        t)
+       (t
     (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)
+          (nnfolder-read-folder group))
+        t)))
 
 (deffoo nnfolder-request-list (&optional server)
   (nnfolder-possibly-change-group nil server)
@@ -416,16 +429,17 @@
       ;; The article numbers are increasing, so this result is sorted.
        (nreverse numbers)))))
 
-(deffoo nnfolder-request-expire-articles
-    (articles newsgroup &optional server force)
+(deffoo nnfolder-request-expire-articles (articles newsgroup
+                                                  &optional server force)
   (nnfolder-possibly-change-group newsgroup server)
-  (let* ((is-old t)
+  (let ((is-old t)
         ;; The articles we have deleted so far.
         (deleted-articles nil)
         ;; The articles that really exist and will
         ;; be expired if they are old enough.
         (maybe-expirable
-         (gnus-sorted-intersection articles (nnfolder-existing-articles))))
+        (gnus-sorted-intersection articles (nnfolder-existing-articles)))
+       target)
     (nnmail-activate 'nnfolder)
 
     (save-excursion
@@ -445,21 +459,28 @@
                       (buffer-substring
                        (point) (progn (end-of-line) (point)))
                       force nnfolder-inhibit-expiry))
-           (unless (eq nnmail-expiry-target 'delete)
+           (setq target nnmail-expiry-target)
+           (unless (eq target 'delete)
              (with-temp-buffer
                (nnfolder-request-article (car maybe-expirable)
                                          newsgroup server (current-buffer))
                (let ((nnfolder-current-directory nil))
-                 (nnmail-expiry-target-group
-                  nnmail-expiry-target newsgroup)))
+                 (when (functionp target)
+                   (setq target (funcall target newsgroup)))
+                 (if (and target
+                          (or (gnus-request-group target)
+                              (gnus-request-create-group target)))
+                     (nnmail-expiry-target-group target newsgroup)
+                   (setq target nil))))
              (nnfolder-possibly-change-group newsgroup server))
+           (when target
            (nnheader-message 5 "Deleting article %d in %s..."
                              (car maybe-expirable) newsgroup)
            (nnfolder-delete-mail)
            (unless (or gnus-nov-is-evil nnfolder-nov-is-evil)
              (nnfolder-nov-delete-article newsgroup (car maybe-expirable)))
            ;; Must remember which articles were actually deleted
-           (push (car maybe-expirable) deleted-articles)))
+             (push (car maybe-expirable) deleted-articles))))
        (setq maybe-expirable (cdr maybe-expirable)))
       (unless nnfolder-inhibit-expiry
        (nnheader-message 5 "Deleting articles...done"))
@@ -468,8 +489,8 @@
       (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)
@@ -1029,9 +1050,7 @@
       (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)))
@@ -1046,7 +1065,7 @@
          (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."
@@ -1073,7 +1092,8 @@
     (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)))
@@ -1197,7 +1217,7 @@
     (nnheader-message 8 "Updating marks for %s..." group)
     (nnfolder-open-marks group server)
     ;; Update info using `nnfolder-marks'.
-    (mapcar (lambda (pred)
+    (mapc (lambda (pred)
              (unless (memq (cdr pred) gnus-article-unpropagated-mark-lists)
                (gnus-info-set-marks
                 info




reply via email to

[Prev in Thread] Current Thread [Next in Thread]