changeset 22752:00d24401ca1e

(rmail-edit-current-message, rmail-cease-edit): Save and restore save-buffer-coding-system in another local variable.
author Richard M. Stallman <rms@gnu.org>
date Mon, 13 Jul 1998 22:04:35 +0000
parents 75c35003c69f
children 4f555df67270
files lisp/mail/rmailedit.el
diffstat 1 files changed, 12 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/mail/rmailedit.el	Mon Jul 13 19:58:49 1998 +0000
+++ b/lisp/mail/rmailedit.el	Mon Jul 13 22:04:35 1998 +0000
@@ -64,14 +64,23 @@
 (defvar rmail-old-pruned nil)
 (put 'rmail-old-pruned 'permanent-local t)
 
+(defvar rmail-edit-saved-coding-system nil)
+(put 'rmail-edit-saved-coding-system 'permanent-local t)
+
 ;;;###autoload
 (defun rmail-edit-current-message ()
   "Edit the contents of this message."
   (interactive)
   (make-local-variable 'rmail-old-pruned)
   (setq rmail-old-pruned (rmail-msg-is-pruned))
+  (make-local-variable 'rmail-edit-saved-coding-system)
+  (setq rmail-edit-saved-coding-system save-buffer-coding-system)
   (rmail-toggle-header 0)
   (rmail-edit-mode)
+  ;; As the local value of save-buffer-coding-system is deleted by
+  ;; rmail-edit-mode, we restore the original value.
+  (make-local-variable 'save-buffer-coding-system)
+  (setq save-buffer-coding-system rmail-edit-saved-coding-system)
   (make-local-variable 'rmail-old-text)
   (setq rmail-old-text (buffer-substring (point-min) (point-max)))
   (setq buffer-read-only nil)
@@ -102,6 +111,9 @@
     (kill-all-local-variables)
     (rmail-mode-1)
     (rmail-variables)
+    ;; As the local value of save-buffer-coding-system is changed by
+    ;; rmail-variables, we restore the original value.
+    (setq save-buffer-coding-system rmail-edit-saved-coding-system)
     (if (and (= (length old) (- (point-max) (point-min)))
 	     (string= old (buffer-substring (point-min) (point-max))))
 	()