mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2025-01-03 11:33:37 +00:00
(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.
This commit is contained in:
parent
271e0f2c6a
commit
d5fe94cca8
@ -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
|
||||
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 @@ After saving the buffer, this function runs `after-save-hook'."
|
||||
;; 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))
|
||||
|
Loading…
Reference in New Issue
Block a user