(make-variable-buffer-local 'save-buffer-coding-system)
(put 'save-buffer-coding-system 'permanent-local t)
-(defvar buffer-swapped-with nil
- "Buffer that this buffer's contents are temporarily swapped with.
-You should only set this variable in file-visiting buffers,
-because it only affects how to save the buffer in its file.")
-
-(make-variable-buffer-local 'buffer-swapped-with)
-
(defun basic-save-buffer ()
"Save the current buffer in its visited file, if it has been modified.
The hooks `write-contents-functions' and `write-file-functions' get a chance
Before and after saving the buffer, this function runs
`before-save-hook' and `after-save-hook', respectively."
(interactive)
- (if (not buffer-swapped-with)
- (basic-save-buffer-0)
- ;; If this buffer's real contents are "swapped" with some other buffer,
- ;; temporarily unswap in order to save the real contents.
- (unwind-protect
- (let ((modp (buffer-modified-p)))
- (buffer-swap-text buffer-swapped-with)
- (set-buffer-modified-p modp)
- (basic-save-buffer-0))
- (buffer-swap-text buffer-swapped-with)
- (set-buffer-modified-p nil))))
-
-(defun basic-save-buffer-0 ()
(save-current-buffer
;; In an indirect buffer, save its base buffer instead.
(if (buffer-base-buffer)