diff options
author | Richard M. Stallman <rms@gnu.org> | 1997-09-04 04:47:34 +0000 |
---|---|---|
committer | Richard M. Stallman <rms@gnu.org> | 1997-09-04 04:47:34 +0000 |
commit | f009b1905be26fde1c71f8b46c15ac27f275592e (patch) | |
tree | b1d1324b5c88c8509970260491424d8fd56ac19c /lisp | |
parent | 218194da8f6b3fa6849a7f5741b1005a2cf87073 (diff) | |
download | emacs-f009b1905be26fde1c71f8b46c15ac27f275592e.tar.gz |
(quail-update-translation):
Do insert translated char when enable-multibyte-characters is nil.
Diffstat (limited to 'lisp')
-rw-r--r-- | lisp/international/quail.el | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/lisp/international/quail.el b/lisp/international/quail.el index df5f009988d..77e69b04d6a 100644 --- a/lisp/international/quail.el +++ b/lisp/international/quail.el @@ -1062,8 +1062,21 @@ The returned value is a Quail map specific to KEY." (setq unread-command-events (cons (aref quail-current-key len) unread-command-events))) - (insert (or quail-current-str - (substring quail-current-key 0 len)))) + ;; Insert the translated sequence. + ;; It is a string containing multibyte characters. + ;; If enable-multibyte-characters, just insert it. + (if enable-multibyte-characters + (insert (or quail-current-str + (substring quail-current-key 0 len))) + ;; Otherwise, in case the user is using a single-byte + ;; extended-ASCII character set, + ;; try inserting the translated character. + (let ((char (sref (or quail-current-str + (substring quail-current-key 0 len)) + 0))) + (if (= (length (split-char char)) 2) + (insert-char (logand char 127)) + (error "Cannot insert three-byte character in single-byte mode"))))) (insert (or quail-current-str quail-current-key))))) (quail-update-guidance) (if control-flag |