Mercurial > emacs
changeset 102315:d823cdbe1ce5
(rmail-primary-inbox-list): Doc fix. Fix custom choice to match default.
(rmail-mode-map): Bind rmail-mime to `v'.
(rmail-get-new-mail): Doc fix.
(rmail-beginning-of-message, rmail-end-of-message): Preserve the current
header style.
author | Glenn Morris <rgm@gnu.org> |
---|---|
date | Sat, 28 Feb 2009 03:25:32 +0000 |
parents | 7f8b299098d7 |
children | 752b3f4e7686 |
files | lisp/mail/rmail.el |
diffstat | 1 files changed, 57 insertions(+), 31 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/mail/rmail.el Fri Feb 27 15:31:36 2009 +0000 +++ b/lisp/mail/rmail.el Sat Feb 28 03:25:32 2009 +0000 @@ -396,16 +396,17 @@ ;;;###autoload (defcustom rmail-primary-inbox-list nil - "List of files which are inboxes for user's primary mail file `~/RMAIL'. -nil means the default, which is (\"/usr/spool/mail/$USER\") -\(the name varies depending on the operating system, -and the value of the environment variable MAIL overrides it)." - ;; Don't use backquote here, because we don't want to need it - ;; at load time. + "List of files that are inboxes for your primary mail file `rmail-file-name'. +If this is nil, uses the environment variable MAIL. If that is +unset, uses a file named by the function `user-login-name' in the +directory `rmail-spool-directory' (whose value depends on the +operating system). For example, \"/var/mail/USER\"." + ;; Don't use backquote here, because we don't want to need it at load time. + ;; (That must be an old comment - it's dumped these days.) :type (list 'choice '(const :tag "Default" nil) (list 'repeat ':value (list (or (getenv "MAIL") - (concat "/var/spool/mail/" - (getenv "USER")))) + (concat rmail-spool-directory + (user-login-name)))) 'file)) :group 'rmail-retrieve :group 'rmail-files) @@ -995,6 +996,7 @@ (define-key map "\es" 'rmail-search) (define-key map "t" 'rmail-toggle-header) (define-key map "u" 'rmail-undelete-previous-message) + (define-key map "v" 'rmail-mime) (define-key map "w" 'rmail-output-body-to-file) (define-key map "\C-c\C-w" 'rmail-widen) (define-key map "x" 'rmail-expunge) @@ -1343,6 +1345,7 @@ (setq rmail-inbox-list (or rmail-primary-inbox-list (list (or (getenv "MAIL") + ;; FIXME expand-file-name? (concat rmail-spool-directory (user-login-name))))))) (set (make-local-variable 'tool-bar-map) rmail-tool-bar-map)) @@ -1564,23 +1567,37 @@ ;; RLK feature not added in this version: ;; argument specifies inbox file or files in various ways. +;; In Babyl, the Mail: header in the preamble overrode rmail-inbox-list. +;; Mbox does not have this feature. (defun rmail-get-new-mail (&optional file-name) - "Move any new mail from this RMAIL file's inbox files. -The inbox files can be specified with the file's Mail: option. The -variable `rmail-primary-inbox-list' specifies the inboxes for your -primary RMAIL file if it has no Mail: option. By default, this is -your /usr/spool/mail/$USER. - -You can also specify the file to get new mail from. In this case, the -file of new mail is not changed or deleted. Noninteractively, you can -pass the inbox file name as an argument. Interactively, a prefix -argument causes us to read a file name and use that file as the inbox. + "Move any new mail from this Rmail file's inbox files. +The buffer-local variable `rmail-inbox-list' specifies the list +of inbox files. By default, this is nil, except for your primary +Rmail file `rmail-file-name'. In this case, when you first visit +the Rmail file it is initialized using either +`rmail-primary-inbox-list', or the \"MAIL\" environment variable, +or the function `user-login-name' and the directory +`rmail-spool-directory' (whose value depends on the operating system). + +The command `set-rmail-inbox-list' sets `rmail-inbox-list' to the +value you specify. + +You can also specify the file to get new mail from just for one +instance of this command. In this case, the file of new mail is +not changed or deleted. Noninteractively, you can pass the inbox +file name as an argument. Interactively, a prefix argument +causes us to read a file name and use that file as the inbox. If the variable `rmail-preserve-inbox' is non-nil, new mail will always be left in inbox files rather than deleted. -This function runs `rmail-get-new-mail-hook' before saving the updated file. -It returns t if it got any new messages." +Before doing anything, this runs `rmail-before-get-new-mail-hook'. +Just before returning, it runs `rmail-after-get-new-mail-hook', +whether or not there is new mail. + +If there is new mail, it runs `rmail-get-new-mail-hook', saves +the updated file, and shows the first unseen message (which might +not be a new one). It returns non-nil if it got any new messages." (interactive (list (if current-prefix-arg (read-file-name "Get new mail from file: ")))) @@ -1607,7 +1624,8 @@ (let ((opoint (point)) ;; If buffer has not changed yet, and has not been ;; saved yet, don't replace the old backup file now. - (make-backup-files (and make-backup-files (buffer-modified-p))) + (make-backup-files (and make-backup-files + (buffer-modified-p))) (buffer-read-only nil) ;; Don't make undo records while getting mail. (buffer-undo-list t) @@ -1619,16 +1637,17 @@ ;; to be that rmail-insert-inbox-text uses .newmail-BASENAME. (while (and all-files (not (member (file-name-nondirectory (car all-files)) - file-last-names))) + file-last-names))) (setq files (cons (car all-files) files) file-last-names (cons (file-name-nondirectory (car all-files)) files)) (setq all-files (cdr all-files))) ;; Put them back in their original order. (setq files (nreverse files)) + ;; In case of brain damage caused by require-final-newline. (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 + (skip-chars-backward " \t\n") + (delete-region (point) (point-max)) (setq found (or (rmail-get-new-mail-1 file-name files delete-files) found)))) @@ -2373,23 +2392,30 @@ (defun rmail-beginning-of-message () "Show current message starting from the beginning." (interactive) - (let ((rmail-show-message-hook - (list (function (lambda () - (goto-char (point-min))))))) + (let ((rmail-show-message-hook '((lambda () (goto-char (point-min))))) + (rmail-header-style (with-current-buffer (if (rmail-buffers-swapped-p) + rmail-view-buffer + rmail-buffer) + rmail-header-style))) (rmail-show-message rmail-current-message))) (defun rmail-end-of-message () "Show bottom of current message." (interactive) - (let ((rmail-show-message-hook - (list (function (lambda () - (goto-char (point-max)) - (recenter (1- (window-height)))))))) + (let ((rmail-show-message-hook '((lambda () + (goto-char (point-max)) + (recenter (1- (window-height)))))) + (rmail-header-style (with-current-buffer (if (rmail-buffers-swapped-p) + rmail-view-buffer + rmail-buffer) + rmail-header-style))) (rmail-show-message rmail-current-message))) (defun rmail-unknown-mail-followup-to () "Handle a \"Mail-Followup-To\" header field with an unknown mailing list. Ask the user whether to add that list name to `mail-mailing-lists'." + ;; FIXME s-r not needed? Use rmail-get-header? + ;; We have not narrowed to the headers at ths point? (save-restriction (let ((mail-followup-to (mail-fetch-field "mail-followup-to" nil t))) (when mail-followup-to