summaryrefslogtreecommitdiff
path: root/lisp/international
diff options
context:
space:
mode:
authorKenichi Handa <handa@gnu.org>2013-06-28 23:54:18 +0900
committerKenichi Handa <handa@gnu.org>2013-06-28 23:54:18 +0900
commit50960f36d19bce75f9c8890c9e57428ab5764d1e (patch)
tree3e88d1584408e9563bff10b391cc8d04b48d9b9d /lisp/international
parent4d4ff4c6dd9356ff3a24c273a785e08c7609ad92 (diff)
downloademacs-50960f36d19bce75f9c8890c9e57428ab5764d1e.tar.gz
emacs-50960f36d19bce75f9c8890c9e57428ab5764d1e.tar.bz2
emacs-50960f36d19bce75f9c8890c9e57428ab5764d1e.zip
mule.el (define-coding-system): New coding system
properties :inhibit-null-byte-detection, :inhibit-iso-escape-detection, and :prefer-utf-8. (set-buffer-file-coding-system): If :charset-list property of CODING-SYSTEM is `emacs', do not check if CODING-SYSTEM is appropriate for setting.
Diffstat (limited to 'lisp/international')
-rw-r--r--lisp/international/mule.el31
1 files changed, 28 insertions, 3 deletions
diff --git a/lisp/international/mule.el b/lisp/international/mule.el
index 4ce1a28c438..3577e0e9152 100644
--- a/lisp/international/mule.el
+++ b/lisp/international/mule.el
@@ -732,7 +732,26 @@ decoding. This attribute has a meaning only when `:coding-type' is
VALUE is a symbol representing the registered CCL program used for
encoding. This attribute has a meaning only when `:coding-type' is
-`ccl'."
+`ccl'.
+
+:inhibit-null-byte-detection
+
+VALUE non-nil means Emacs ignore null bytes on code detection.
+See the variable `inhibit-null-byte-detection'. This attribute
+has a meaning only when `:coding-type' is `undecided'.
+
+:inhibit-iso-escape-detection
+
+VALUE non-nil means Emacs ignores ISO-2022 escape sequences on
+code detection. See the variable `inhibit-iso-escape-detection'.
+This attribute has a meaning only when `:coding-type' is
+`undecided'.
+
+:prefer-utf-8
+
+VALUE non-nil means Emacs prefers UTF-8 on code detection for
+non-ASCII files. This attribute has a meaning only when
+`:coding-type' is `undecided'."
(let* ((common-attrs (mapcar 'list
'(:mnemonic
:coding-type
@@ -761,7 +780,11 @@ encoding. This attribute has a meaning only when `:coding-type' is
((eq coding-type 'ccl)
'(:ccl-decoder
:ccl-encoder
- :valids))))))
+ :valids))
+ ((eq coding-type 'undecided)
+ '(:inhibit-null-byte-detection
+ :inhibit-iso-escape-detection
+ :prefer-utf-8))))))
(dolist (slot common-attrs)
(setcdr slot (plist-get props (car slot))))
@@ -1236,7 +1259,9 @@ just set the variable `buffer-file-coding-system' directly."
(if (and coding-system buffer-file-coding-system (null force))
(setq coding-system
(merge-coding-systems coding-system buffer-file-coding-system)))
- (when (called-interactively-p 'interactive)
+ (when (and (called-interactively-p 'interactive)
+ (not (memq 'emacs (coding-system-get coding-system
+ :charset-list))))
;; Check whether save would succeed, and jump to the offending char(s)
;; if not.
(let ((css (find-coding-systems-region (point-min) (point-max))))