summaryrefslogtreecommitdiff
path: root/lisp
diff options
context:
space:
mode:
authorChong Yidong <cyd@gnu.org>2013-02-10 11:08:21 +0800
committerChong Yidong <cyd@gnu.org>2013-02-10 11:08:21 +0800
commit0ccdf61ed6527800856123189c799beca78218e3 (patch)
treebada00a5a29c09d1a292b55cebb4f5af61d57f78 /lisp
parent490a9458c8310140a255b30330e9940fb68e27ef (diff)
downloademacs-0ccdf61ed6527800856123189c799beca78218e3.tar.gz
* files.el (basic-save-buffer-1): Don't set buffer-file-coding-system-explicit.
Fixes: debbugs:4533
Diffstat (limited to 'lisp')
-rw-r--r--lisp/ChangeLog3
-rw-r--r--lisp/files.el4
-rw-r--r--lisp/international/mule.el21
3 files changed, 16 insertions, 12 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index cc5aa18d27f..c0a91bb75dc 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,5 +1,8 @@
2013-02-10 Chong Yidong <cyd@gnu.org>
+ * files.el (basic-save-buffer-1): Do not set
+ buffer-file-coding-system-explicit (Bug#4533).
+
* mail/emacsbug.el (report-emacs-bug): Change binding of
report-emacs-bug-insert-to-mailer to C-c M-i (Bug#13510).
diff --git a/lisp/files.el b/lisp/files.el
index 9fca70d36f7..c9e5d2763fe 100644
--- a/lisp/files.el
+++ b/lisp/files.el
@@ -4646,9 +4646,7 @@ Before and after saving the buffer, this function runs
(basic-save-buffer-2))
(basic-save-buffer-2))
(if buffer-file-coding-system-explicit
- (setcar buffer-file-coding-system-explicit last-coding-system-used)
- (setq buffer-file-coding-system-explicit
- (cons last-coding-system-used nil)))))
+ (setcar buffer-file-coding-system-explicit last-coding-system-used))))
;; This returns a value (MODES EXTENDED-ATTRIBUTES BACKUPNAME), like
;; backup-buffer.
diff --git a/lisp/international/mule.el b/lisp/international/mule.el
index 995df2fb9a7..47c7087518e 100644
--- a/lisp/international/mule.el
+++ b/lisp/international/mule.el
@@ -1132,17 +1132,20 @@ FORM is a form to evaluate to define the coding-system."
(put (intern name) 'coding-system-define-form form)
(setq coding-system-alist (cons (list name) coding-system-alist)))))
-;; This variable is set in these three cases:
+;; This variable is set in these two cases:
;; (1) A file is read by a coding system specified explicitly.
-;; after-insert-file-set-coding sets the car of this value to
-;; coding-system-for-read, and sets the cdr to nil.
-;; (2) A buffer is saved.
-;; After writing, basic-save-buffer-1 sets the car of this value
-;; to last-coding-system-used.
-;; (3) set-buffer-file-coding-system is called.
+;; `after-insert-file-set-coding' sets the car of this value to
+;; `coding-system-for-read', and sets the cdr to nil.
+;; (2) `set-buffer-file-coding-system' is called.
;; The cdr of this value is set to the specified coding system.
-;; This variable is used for decoding in revert-buffer and encoding in
-;; select-safe-coding-system.
+;; This variable is used for decoding in `revert-buffer' and encoding
+;; in `select-safe-coding-system'.
+;;
+;; When saving a buffer, if `buffer-file-coding-system-explicit' is
+;; already non-nil, `basic-save-buffer-1' sets its CAR to the value of
+;; `last-coding-system-used'. (It used to set it unconditionally, but
+;; that seems unnecessary; see Bug#4533.)
+
(defvar buffer-file-coding-system-explicit nil
"The file coding system explicitly specified for the current buffer.
The value is a cons of coding systems for reading (decoding) and