comparison lisp/international/mule.el @ 90212:76ab0b868ab0

(coding-system-get): Check `ascii-incompatible' for backward compatiblity. (set-file-name-coding-system): Signal an error for a coding system not suitable for file name. (set-keyboard-coding-system): Signal an error for a coding system not suitable for keyboard.
author Kenichi Handa <handa@m17n.org>
date Fri, 29 Jul 2005 06:17:39 +0000
parents 187d6a1f84f7
children ee12d75eb214
comparison
equal deleted inserted replaced
90211:efcbeb957a31 90212:76ab0b868ab0
840 "Extract a value from CODING-SYSTEM's property list for property PROP. 840 "Extract a value from CODING-SYSTEM's property list for property PROP.
841 For compatibility with Emacs 20/21, this accepts old-style symbols 841 For compatibility with Emacs 20/21, this accepts old-style symbols
842 like `mime-charset' as well as the current style like `:mime-charset'." 842 like `mime-charset' as well as the current style like `:mime-charset'."
843 (or (plist-get (coding-system-plist coding-system) prop) 843 (or (plist-get (coding-system-plist coding-system) prop)
844 (if (not (keywordp prop)) 844 (if (not (keywordp prop))
845 (plist-get (coding-system-plist coding-system) 845 ;; For backward compatiblity.
846 (intern (concat ":" (symbol-name prop))))))) 846 (if (eq prop 'ascii-incompatible)
847 (not (plist-get (coding-system-plist coding-system)
848 :ascii-compatible-p))
849 (plist-get (coding-system-plist coding-system)
850 (intern (concat ":" (symbol-name prop))))))))
847 851
848 (defun coding-system-eol-type-mnemonic (coding-system) 852 (defun coding-system-eol-type-mnemonic (coding-system)
849 "Return the string indicating end-of-line format of CODING-SYSTEM." 853 "Return the string indicating end-of-line format of CODING-SYSTEM."
850 (let* ((eol-type (coding-system-eol-type coding-system)) 854 (let* ((eol-type (coding-system-eol-type coding-system))
851 (val (cond ((eq eol-type 0) eol-mnemonic-unix) 855 (val (cond ((eq eol-type 0) eol-mnemonic-unix)
1171 "Set coding system for decoding and encoding file names to CODING-SYSTEM. 1175 "Set coding system for decoding and encoding file names to CODING-SYSTEM.
1172 It actually just set the variable `file-name-coding-system' (which 1176 It actually just set the variable `file-name-coding-system' (which
1173 see) to CODING-SYSTEM." 1177 see) to CODING-SYSTEM."
1174 (interactive "zCoding system for file names (default, nil): ") 1178 (interactive "zCoding system for file names (default, nil): ")
1175 (check-coding-system coding-system) 1179 (check-coding-system coding-system)
1180 (if (and coding-system
1181 (not (coding-system-get coding-system :ascii-compatible-p))
1182 (not (coding-system-get coding-system :suitable-for-file-name)))
1183 (error "%s is not suitable for file names" coding-system))
1176 (setq file-name-coding-system coding-system)) 1184 (setq file-name-coding-system coding-system))
1177 1185
1178 (defvar default-terminal-coding-system nil 1186 (defvar default-terminal-coding-system nil
1179 "Default value for the terminal coding system. 1187 "Default value for the terminal coding system.
1180 This is normally set according to the selected language environment. 1188 This is normally set according to the selected language environment.
1227 (if (and (not coding-system) 1235 (if (and (not coding-system)
1228 (not (keyboard-coding-system))) 1236 (not (keyboard-coding-system)))
1229 (setq coding-system default-keyboard-coding-system)) 1237 (setq coding-system default-keyboard-coding-system))
1230 (if coding-system 1238 (if coding-system
1231 (setq default-keyboard-coding-system coding-system)) 1239 (setq default-keyboard-coding-system coding-system))
1240 (if (and coding-system
1241 (not (coding-system-get coding-system :ascii-compatible-p))
1242 (not (coding-system-get coding-system :suitable-for-keyboard)))
1243 (error "%s is not suitable for keyboard" coding-system))
1232 (set-keyboard-coding-system-internal coding-system) 1244 (set-keyboard-coding-system-internal coding-system)
1233 (setq keyboard-coding-system coding-system) 1245 (setq keyboard-coding-system coding-system)
1234 (encoded-kbd-mode (if coding-system 1 0))) 1246 (encoded-kbd-mode (if coding-system 1 0)))
1235 1247
1236 (defcustom keyboard-coding-system nil 1248 (defcustom keyboard-coding-system nil