Mercurial > emacs
changeset 22724:6a6568360d51
(rmail): If existing buffer, use local
enable-multibyte-characters for rmail-enable-multibyte.
(rmail-revert): Bind coding-system-for-read to raw-text,
then convert and make buffer multibyte, as in `rmail'.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Thu, 09 Jul 1998 04:45:33 +0000 |
parents | 04b653d7f842 |
children | 6d0f7798f157 |
files | lisp/mail/rmail.el |
diffstat | 1 files changed, 18 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/mail/rmail.el Thu Jul 09 04:33:00 1998 +0000 +++ b/lisp/mail/rmail.el Thu Jul 09 04:45:33 1998 +0000 @@ -488,7 +488,10 @@ ;; This binding is necessary because we much decide if we ;; need code conversion while the buffer is unibyte ;; (i.e. enable-multibyte-characters is nil). - (rmail-enable-multibyte (default-value 'enable-multibyte-characters)) + (rmail-enable-multibyte + (if existed + (with-current-buffer existed enable-multibyte-characters) + (default-value 'enable-multibyte-characters))) ;; Since the file may contain messages of different encodings ;; at the tail (non-BYBYL part), we can't decode them at once ;; on reading. So, at first, we read the file without text @@ -966,15 +969,27 @@ ;; Handle M-x revert-buffer done in an rmail-mode buffer. (defun rmail-revert (arg noconfirm) - (let ((revert-buffer-function (default-value 'revert-buffer-function))) + (let* ((revert-buffer-function (default-value 'revert-buffer-function)) + (rmail-enable-multibyte enable-multibyte-characters) + ;; See similar code in `rmail'. + (coding-system-for-read (and rmail-enable-multibyte 'raw-text))) ;; Call our caller again, but this time it does the default thing. (if (revert-buffer arg noconfirm) ;; If the user said "yes", and we changed something, ;; reparse the messages. (progn + (rmail-mode-2) + ;; Convert all or part to Babyl file if possible. (rmail-convert-file) + ;; We have read the file as raw-text, so the buffer is set to + ;; unibyte. Make it multibyte if necessary. + (if (and rmail-enable-multibyte + (not enable-multibyte-characters)) + (set-buffer-multibyte t)) (goto-char (point-max)) - (rmail-mode))))) + (rmail-set-message-counters) + (rmail-show-message rmail-total-messages) + (run-hooks 'rmail-mode-hook))))) ;; Return a list of files from this buffer's Mail: option. ;; Does not assume that messages have been parsed.