From: Richard M. Stallman Date: Thu, 4 Sep 1997 04:47:34 +0000 (+0000) Subject: (quail-update-translation): X-Git-Tag: emacs-20.1~204 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=e41b451795bca8164ddcaae19d915f798e118590;p=emacs.git (quail-update-translation): Do insert translated char when enable-multibyte-characters is nil. --- 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