Mercurial > emacs
changeset 22807:ff685e4dce0b
(basic-save-buffer-2): New function.
(basic-save-buffer-1): Use basic-save-buffer-2,
after perhaps binding coding-system-for-write.
(save-buffer-coding-system): Make it a permanent local.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Fri, 24 Jul 1998 10:43:29 +0000 |
parents | 9a17cce45a16 |
children | 435144eea4f4 |
files | lisp/files.el |
diffstat | 1 files changed, 10 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/files.el Fri Jul 24 04:36:09 1998 +0000 +++ b/lisp/files.el Fri Jul 24 10:43:29 1998 +0000 @@ -2222,6 +2222,9 @@ will still use `buffer-file-coding-system'; this variable has no effect in such cases.") +(make-variable-buffer-local 'save-buffer-coding-system) +(put 'save-buffer-coding-system 'permanent-local t) + (defun basic-save-buffer () "Save the current buffer in its visited file, if it has been modified. The hooks `write-contents-hooks', `local-write-file-hooks' and @@ -2311,10 +2314,13 @@ ;; but inhibited if one of write-file-hooks returns non-nil. ;; It returns a value to store in setmodes. (defun basic-save-buffer-1 () - (let ((buffer-file-coding-system - (or save-buffer-coding-system - buffer-file-coding-system)) - tempsetmodes setmodes) + (if save-buffer-coding-system + (let ((coding-system-for-write save-buffer-coding-system)) + (basic-save-buffer-2)) + (basic-save-buffer-2))) + +(defun basic-save-buffer-2 () + (let (tempsetmodes setmodes) (if (not (file-writable-p buffer-file-name)) (let ((dir (file-name-directory buffer-file-name))) (if (not (file-directory-p dir))