changeset 22360:09dbe38a603f

(jka-compr-write-region): Ensure `last-coding-system-used' is updated, so that basic-save-buffer sees the right value.
author Karl Heuer <kwzh@gnu.org>
date Fri, 05 Jun 1998 15:54:48 +0000
parents 9e5f3f1c0c0f
children 841b8916e3b2
files lisp/jka-compr.el
diffstat 1 files changed, 11 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/jka-compr.el	Fri Jun 05 15:51:08 1998 +0000
+++ b/lisp/jka-compr.el	Fri Jun 05 15:54:48 1998 +0000
@@ -306,7 +306,7 @@
 
       (let ((err-file (jka-compr-make-temp-name))
 	    (coding-system-for-read (or coding-system-for-read 'undecided))
-            (coding-system-for-write 'no-conversion) )
+            (coding-system-for-write 'no-conversion))
 
 	(unwind-protect
 
@@ -413,7 +413,11 @@
 		(compress-args (jka-compr-info-compress-args info))
 		(uncompress-args (jka-compr-info-uncompress-args info))
 		(base-name (file-name-nondirectory visit-file))
-		temp-file temp-buffer)
+		temp-file temp-buffer
+		;; we need to leave `last-coding-system-used' set to its
+		;; value after calling write-region the first time, so
+		;; that `basic-save-buffer' sees the right value.
+		(coding-system-used last-coding-system-used))
 
 	    (setq temp-buffer (get-buffer-create " *jka-compr-wr-temp*"))
 	    (with-current-buffer temp-buffer
@@ -436,6 +440,8 @@
 	    
 	    (jka-compr-run-real-handler 'write-region
 					(list start end temp-file t 'dont))
+	    ;; save value used by the real write-region
+	    (setq coding-system-used last-coding-system-used)
 
 	    ;; Here we must read the output of compress program as is
 	    ;; without any code conversion.
@@ -478,6 +484,9 @@
 		     (stringp visit))
 		 (message "Wrote %s" visit-file))
 
+	    ;; ensure `last-coding-system-used' has an appropriate value
+	    (setq last-coding-system-used coding-system-used)
+
 	    nil)
 	      
 	(jka-compr-run-real-handler 'write-region