# HG changeset patch # User Kenichi Handa # Date 1130220623 0 # Node ID 54f639048139b3dd779f6b23b5d27fda39a5c224 # Parent 3dcbac1167326adf1901ec1c232f8449f49d9f1f (quail-translate-key): If the input method is deterministic and failed to handle the last key, restart the key handling loop from an appropriate key. diff -r 3dcbac116732 -r 54f639048139 lisp/international/quail.el --- a/lisp/international/quail.el Tue Oct 25 05:52:28 2005 +0000 +++ b/lisp/international/quail.el Tue Oct 25 06:10:23 2005 +0000 @@ -1720,6 +1720,20 @@ ;; And, we can terminate the current translation. t) + ((quail-deterministic) + ;; No way to handle the last character in this context. + ;; Commit the longest successfully translated characters, and + ;; handle the remaining characters in a new loop. + (setq def nil) + (while (and (not def) (> len 1)) + (setq len (1- len)) + (setq def (quail-map-definition + (quail-lookup-key quail-current-key len)))) + (if def (setq quail-current-str + (quail-get-current-str len def)) + (setq quail-current-str (aref quail-current-key 0))) + len) + (t ;; No way to handle the last character in this context. (setq def (quail-map-definition