summaryrefslogtreecommitdiff
path: root/lisp
diff options
context:
space:
mode:
Diffstat (limited to 'lisp')
-rw-r--r--lisp/ChangeLog5
-rw-r--r--lisp/international/mule-cmds.el11
2 files changed, 10 insertions, 6 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 1cf7714e80e..0fcfead46e3 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,8 @@
+2009-10-17 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * international/mule-cmds.el (select-safe-coding-system): If the file
+ has a coding cookie, use it regardless of any other setting (bug#4712).
+
2009-10-17 Glenn Morris <rgm@gnu.org>
* cedet/semantic/grammar.el (semantic-grammar--lex-delim-spec):
diff --git a/lisp/international/mule-cmds.el b/lisp/international/mule-cmds.el
index 9d6f6eb4e96..af813b0172b 100644
--- a/lisp/international/mule-cmds.el
+++ b/lisp/international/mule-cmds.el
@@ -889,13 +889,12 @@ It is highly recommended to fix it before writing to a file."
default-coding-system))
(if (and auto-cs (not no-other-defaults))
- ;; If the file has a coding cookie, try to use it before anything
- ;; else (i.e. before default-coding-system which will typically come
- ;; from file-coding-system-alist).
+ ;; If the file has a coding cookie, use it regardless of any
+ ;; other setting.
(let ((base (coding-system-base auto-cs)))
- (or (memq base '(nil undecided))
- (rassq base default-coding-system)
- (push (cons auto-cs base) default-coding-system))))
+ (unless (memq base '(nil undecided))
+ (setq default-coding-system (list (cons auto-cs base)))
+ (setq no-other-defaults t))))
(unless no-other-defaults
;; If buffer-file-coding-system is not nil nor undecided, append it