summaryrefslogtreecommitdiff
path: root/lisp/files.el
diff options
context:
space:
mode:
authorGlenn Morris <rgm@gnu.org>2014-08-10 17:38:19 -0700
committerGlenn Morris <rgm@gnu.org>2014-08-10 17:38:19 -0700
commitf314e84fce8b394da20aa1d69121c74fb34f9a1e (patch)
tree214ada74bd8ae7e7450d5269b03cdf51ed87d11d /lisp/files.el
parentdb2f09ab1be010a06a88269d39fb14c191452f1c (diff)
downloademacs-f314e84fce8b394da20aa1d69121c74fb34f9a1e.tar.gz
emacs-f314e84fce8b394da20aa1d69121c74fb34f9a1e.tar.bz2
emacs-f314e84fce8b394da20aa1d69121c74fb34f9a1e.zip
Revert 2013-01-31 change that decides coding system before backing up
It causes a more serious problem than the one it solves. This closes bug#18141, and reopens bug#13522. * lisp/files.el (basic-save-buffer-2): Revert 2013-01-31 change. * src/fileio.c: Revert 2013-01-31 change. (choose_write_coding_system): No longer callable from Lisp. Move last piece back here from Fwrite_region. (Fwrite_region, syms_of_fileio): Update for above changes. * test/automated/data/files-bug18141.el.gz: New file. * test/automated/files.el (files-test-bug-18141-file): New variable and test.
Diffstat (limited to 'lisp/files.el')
-rw-r--r--lisp/files.el13
1 files changed, 2 insertions, 11 deletions
diff --git a/lisp/files.el b/lisp/files.el
index 6c3b8f4fa4d..5ed5f8a6e1e 100644
--- a/lisp/files.el
+++ b/lisp/files.el
@@ -4756,7 +4756,7 @@ Before and after saving the buffer, this function runs
;; This returns a value (MODES EXTENDED-ATTRIBUTES BACKUPNAME), like
;; backup-buffer.
(defun basic-save-buffer-2 ()
- (let (tempsetmodes setmodes writecoding)
+ (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))
@@ -4772,14 +4772,6 @@ Before and after saving the buffer, this function runs
buffer-file-name)))
(setq tempsetmodes t)
(error "Attempt to save to a file which you aren't allowed to write"))))))
- ;; This may involve prompting, so do it now before backing up the file.
- ;; Otherwise there can be a delay while the user answers the
- ;; prompt during which the original file has been renamed. (Bug#13522)
- (setq writecoding
- ;; Args here should match write-region call below around
- ;; which we use writecoding.
- (choose-write-coding-system nil nil buffer-file-name nil t
- buffer-file-truename))
(or buffer-backed-up
(setq setmodes (backup-buffer)))
(let* ((dir (file-name-directory buffer-file-name))
@@ -4861,11 +4853,10 @@ Before and after saving the buffer, this function runs
(logior (car setmodes) 128))))))
(let (success)
(unwind-protect
+ (progn
;; Pass in nil&nil rather than point-min&max to indicate
;; we're saving the buffer rather than just a region.
;; write-region-annotate-functions may make us of it.
- (let ((coding-system-for-write writecoding)
- (coding-system-require-warning nil))
(write-region nil nil
buffer-file-name nil t buffer-file-truename)
(setq success t))