]> git.eshelyaron.com Git - emacs.git/commitdiff
(rmail-get-new-mail): If conversion to BABYL fails
authorRichard M. Stallman <rms@gnu.org>
Fri, 7 Jun 1996 14:57:45 +0000 (14:57 +0000)
committerRichard M. Stallman <rms@gnu.org>
Fri, 7 Jun 1996 14:57:45 +0000 (14:57 +0000)
for the default inboxes, rename them so they won't be tried again.

lisp/mail/rmail.el

index 94bbf6ef15a1ace3f835bb868777fadf63be830d..c2b994980a688e06869f1bea42bc2b46bb326481 100644 (file)
@@ -899,7 +899,8 @@ It returns t if it got any new messages."
            (make-backup-files (and make-backup-files (buffer-modified-p)))
            (buffer-read-only nil)
            ;; Don't make undo records for what we do in getting mail.
-           (buffer-undo-list t))
+           (buffer-undo-list t)
+           success)
        (goto-char (point-max))
        (skip-chars-backward " \t\n")       ; just in case of brain damage
        (delete-region (point) (point-max)) ; caused by require-final-newline
@@ -914,8 +915,22 @@ It returns t if it got any new messages."
              (setq delete-files (rmail-insert-inbox-text rmail-inbox-list t)))
            ;; Scan the new text and convert each message to babyl format.
            (goto-char (point-min))
-           (save-excursion
-             (setq new-messages (rmail-convert-to-babyl-format)))
+           (unwind-protect
+               (save-excursion
+                 (setq new-messages (rmail-convert-to-babyl-format)
+                       success t))
+             ;; If we could not convert the file's inboxes,
+             ;; rename the files we tried to read
+             ;; so we won't over and over again.
+             (if (and (not file-name) (not success))
+                 (let ((files delete-files)
+                       (count 0))
+                   (while files
+                     (while (file-exists-p (format "RMAILOSE.%d" count))
+                       (setq count (1+ count)))
+                     (rename-file (car files)
+                                  (format "RMAILOSE.%d" count))
+                     (setq files (cdr files))))))
            (or (zerop new-messages)
                (let (success)
                  (widen)