diff options
| author | Kenichi Handa | 2005-10-25 06:13:01 +0000 |
|---|---|---|
| committer | Kenichi Handa | 2005-10-25 06:13:01 +0000 |
| commit | 1f1ce6abe8723512ff62a077b4e7687d37eca135 (patch) | |
| tree | 7906b6bcb8f0e873e6dd541a350bf47fbb64f703 | |
| parent | ead915936b333cc47a25ce52cdb72562008f1ee7 (diff) | |
| download | emacs-1f1ce6abe8723512ff62a077b4e7687d37eca135.tar.gz emacs-1f1ce6abe8723512ff62a077b4e7687d37eca135.zip | |
(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.
| -rw-r--r-- | lisp/ChangeLog | 6 | ||||
| -rw-r--r-- | lisp/international/quail.el | 14 |
2 files changed, 20 insertions, 0 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index eaadd83db29..8ef8d2b823e 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog | |||
| @@ -1,3 +1,9 @@ | |||
| 1 | 2005-10-25 Kenichi Handa <handa@m17n.org> | ||
| 2 | |||
| 3 | * international/quail.el (quail-translate-key): If the input | ||
| 4 | method is deterministic and failed to handle the last key, restart | ||
| 5 | the key handling loop from an appropriate key. | ||
| 6 | |||
| 1 | 2005-10-25 Michael Albinus <michael.albinus@gmx.de> | 7 | 2005-10-25 Michael Albinus <michael.albinus@gmx.de> |
| 2 | 8 | ||
| 3 | * vc.el (vc-dired-mode): Extend comment for binding of | 9 | * vc.el (vc-dired-mode): Extend comment for binding of |
diff --git a/lisp/international/quail.el b/lisp/international/quail.el index 0f9cc8f231d..e706a26d641 100644 --- a/lisp/international/quail.el +++ b/lisp/international/quail.el | |||
| @@ -1720,6 +1720,20 @@ sequence counting from the head." | |||
| 1720 | ;; And, we can terminate the current translation. | 1720 | ;; And, we can terminate the current translation. |
| 1721 | t) | 1721 | t) |
| 1722 | 1722 | ||
| 1723 | ((quail-deterministic) | ||
| 1724 | ;; No way to handle the last character in this context. | ||
| 1725 | ;; Commit the longest successfully translated characters, and | ||
| 1726 | ;; handle the remaining characters in a new loop. | ||
| 1727 | (setq def nil) | ||
| 1728 | (while (and (not def) (> len 1)) | ||
| 1729 | (setq len (1- len)) | ||
| 1730 | (setq def (quail-map-definition | ||
| 1731 | (quail-lookup-key quail-current-key len)))) | ||
| 1732 | (if def (setq quail-current-str | ||
| 1733 | (quail-get-current-str len def)) | ||
| 1734 | (setq quail-current-str (aref quail-current-key 0))) | ||
| 1735 | len) | ||
| 1736 | |||
| 1723 | (t | 1737 | (t |
| 1724 | ;; No way to handle the last character in this context. | 1738 | ;; No way to handle the last character in this context. |
| 1725 | (setq def (quail-map-definition | 1739 | (setq def (quail-map-definition |