(when for-encode
;; Make mule-utf-* encode all characters in ucs-mule-to-mule-unicode.
- (let ((coding-list '(mule-utf-8 mule-utf-16-be mule-utf-16-le)))
+ (let ((coding-list '(mule-utf-8 mule-utf-16be mule-utf-16le
+ mule-utf-16be-with-signature
+ mule-utf-16le-with-signature)))
(define-translation-table 'utf-translation-table-for-encode
ucs-mule-to-mule-unicode)
(dolist (coding coding-list)
;; ucs-mule-to-mule-unicode except what was originally supported
;; and what is translated by utf-translation-table-for-decode when
;; `utf-fragment-on-decoding' is non-nil.
- (let ((coding-list '(mule-utf-8 mule-utf-16-be mule-utf-16-le))
+ (let ((coding-list '(mule-utf-8 mule-utf-16be mule-utf-16le
+ mule-utf-16be-with-signature
+ mule-utf-16le-with-signature))
(safe (coding-system-get 'mule-utf-8 'safe-chars)))
(dolist (coding coding-list)
(set-char-table-parent (coding-system-get coding 'safe-chars) nil))
"Insert the Emacs character representation of the given Unicode.
Interactively, prompts for a hex string giving the code."
(interactive "sUnicode (hex): ")
- (let ((c (decode-char 'ucs (if (integerp arg)
- arg
- (string-to-number arg 16)))))
+ (or (integerp arg)
+ (setq arg (string-to-number arg 16)))
+ (let ((c (decode-char 'ucs arg)))
(if c
(insert c)
- (error "Character can't be decoded to UCS"))))
+ (if (or (< arg 0) (> arg #x10FFFF))
+ (error "Not a Unicode character code: 0x%X" arg)
+ (error "Character U+%04X is not yet supported" arg)))))
;;; Dealing with non-8859 character sets.
(coding-system-base default-buffer-file-coding-system))))
(when cs
(setq table (coding-system-get cs 'translation-table-for-encode))
+ (if (and table (symbolp table))
+ (setq table (get table 'translation-table)))
(unless (char-table-p table)
(setq table (coding-system-get cs 'translation-table-for-input)))
(when (char-table-p table)
(provide 'ucs-tables)
+;;; arch-tag: b497e22b-7fe1-486a-9352-e2d7f7d76a76
;;; ucs-tables.el ends here