Commit d5fe94cc authored by Richard M. Stallman's avatar Richard M. Stallman
Browse files

(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.
parent 271e0f2c
...@@ -2222,6 +2222,9 @@ Calling `write-region' for any purpose other than saving the buffer ...@@ -2222,6 +2222,9 @@ Calling `write-region' for any purpose other than saving the buffer
will still use `buffer-file-coding-system'; this variable has no effect will still use `buffer-file-coding-system'; this variable has no effect
in such cases.") in such cases.")
(make-variable-buffer-local 'save-buffer-coding-system)
(put 'save-buffer-coding-system 'permanent-local t)
(defun basic-save-buffer () (defun basic-save-buffer ()
"Save the current buffer in its visited file, if it has been modified. "Save the current buffer in its visited file, if it has been modified.
The hooks `write-contents-hooks', `local-write-file-hooks' and The hooks `write-contents-hooks', `local-write-file-hooks' and
...@@ -2311,10 +2314,13 @@ After saving the buffer, this function runs `after-save-hook'." ...@@ -2311,10 +2314,13 @@ After saving the buffer, this function runs `after-save-hook'."
;; but inhibited if one of write-file-hooks returns non-nil. ;; but inhibited if one of write-file-hooks returns non-nil.
;; It returns a value to store in setmodes. ;; It returns a value to store in setmodes.
(defun basic-save-buffer-1 () (defun basic-save-buffer-1 ()
(let ((buffer-file-coding-system (if save-buffer-coding-system
(or save-buffer-coding-system (let ((coding-system-for-write save-buffer-coding-system))
buffer-file-coding-system)) (basic-save-buffer-2))
tempsetmodes setmodes) (basic-save-buffer-2)))
(defun basic-save-buffer-2 ()
(let (tempsetmodes setmodes)
(if (not (file-writable-p buffer-file-name)) (if (not (file-writable-p buffer-file-name))
(let ((dir (file-name-directory buffer-file-name))) (let ((dir (file-name-directory buffer-file-name)))
(if (not (file-directory-p dir)) (if (not (file-directory-p dir))
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment