]> git.eshelyaron.com Git - emacs.git/commitdiff
(rmail-inbox-alist): New variable.
authorHenrik Enberg <henrik.enberg@telia.com>
Fri, 20 Jan 2006 02:23:17 +0000 (02:23 +0000)
committerHenrik Enberg <henrik.enberg@telia.com>
Fri, 20 Jan 2006 02:23:17 +0000 (02:23 +0000)
(rmail-get-file-inbox-list): New function.
(rmail-perm-variables): Use it.
(rmail-parse-file-inboxes): Deleted.

lisp/mail/ChangeLog
lisp/mail/rmail.el

index 4fb8bbae380bb3af084772b018144c8e1fd0a2cd..40cbef3b2f95c9c0ff6ab3c7b27a36304546b88a 100644 (file)
@@ -1,3 +1,10 @@
+2006-01-20  Henrik Enberg  <enberg@printf.se>
+
+       * rmail.el: (rmail-inbox-alist): New variable.
+       (rmail-get-file-inbox-list): New function.
+       (rmail-perm-variables): Use it.
+       (rmail-parse-file-inboxes): Deleted.
+
 2006-01-20  Alex Schroeder  <alex@gnu.org>
 
        * rmailsum.el (rmail-summary-mode): Fixed typo in doc string and
index fdcbc9b0faa29e51691aa74875b0e02b91f70788..35722edc18244142c2670487690731c26dfb019f 100644 (file)
@@ -355,6 +355,15 @@ and the value of the environment variable MAIL overrides it)."
   :group 'rmail-retrieve
   :group 'rmail-files)
 
+;;;###autoload
+(defcustom rmail-inbox-alist nil
+  "*Alist of mail files and backup directory names.
+Each element looks like (MAIL-FILE . INBOX-LIST).  Mail files with
+names matching MAIL-FILE will retrieve mail from files in INBOX-LIST."
+  :type '(alist :key-type file :value-type (repeat file))
+  :group 'rmail-retrieve
+  :group 'rmail-files)
+
 ;;;###autoload
 (defcustom rmail-mail-new-frame nil
   "*Non-nil means Rmail makes a new frame for composing outgoing mail.
@@ -1165,7 +1174,7 @@ Instead, these commands are available:
   (make-local-variable 'rmail-overlay-list)
   (setq rmail-overlay-list nil)
   (make-local-variable 'rmail-inbox-list)
-  (setq rmail-inbox-list (rmail-parse-file-inboxes))
+  (setq rmail-inbox-list (rmail-get-file-inbox-list))
   ;; Provide default set of inboxes for primary mail file ~/RMAIL.
   (and (null rmail-inbox-list)
        (or (equal buffer-file-name (expand-file-name rmail-file-name))
@@ -1237,24 +1246,17 @@ Instead, these commands are available:
          (rmail-show-message rmail-total-messages)
          (run-hooks 'rmail-mode-hook)))))
 
-;; NOT DONE
-;; Return a list of files from this buffer's Mail: option.
-;; Does not assume that messages have been parsed.
-;; Just returns nil if buffer does not look like Babyl format.
-(defun rmail-parse-file-inboxes ()
-  (save-excursion
-    (save-restriction
-      (widen)
-      (goto-char 1)
-      (cond ((looking-at "BABYL OPTIONS:")
-            (search-forward "\n\^_" nil 'move)
-            (narrow-to-region 1 (point))
-            (goto-char 1)
-            (if (search-forward "\nMail:" nil t)
-                (progn
-                  (narrow-to-region (point) (progn (end-of-line) (point)))
-                  (goto-char (point-min))
-                  (mail-parse-comma-list))))))))
+(defun rmail-get-file-inbox-list ()
+  "Return a list of inbox files for this buffer."
+  (let* ((filename (expand-file-name (buffer-file-name)))
+        (inboxes (cdr (or (assoc filename rmail-inbox-alist)
+                          (assoc (abbreviate-file-name filename)
+                                 rmail-inbox-alist))))
+        (list nil))
+    (dolist (i inboxes)
+      (when (file-name-absolute-p i)
+       (push (expand-file-name i) list)))
+    (nreverse list)))
 
 ;;; mbox: ready
 (defun rmail-expunge-and-save ()