summaryrefslogtreecommitdiff
path: root/lisp/international/encoded-kb.el
diff options
context:
space:
mode:
authorKenichi Handa <handa@m17n.org>2001-03-23 10:45:20 +0000
committerKenichi Handa <handa@m17n.org>2001-03-23 10:45:20 +0000
commit4c8d5b4b784cadd5ae39df3beeab13aa5f4b194f (patch)
treeb32182fa4bb6aee874bbde602b079dda451f7a42 /lisp/international/encoded-kb.el
parente0ecbf5c163626f2580ca3500f49e8c439de2fb1 (diff)
downloademacs-4c8d5b4b784cadd5ae39df3beeab13aa5f4b194f.tar.gz
(encoded-kbd-self-insert-ccl): Call ccl-execute-on-string directly so
that CCL program handling multibyte sequence can work correctly. (encoded-kbd-setup-keymap): Fix the default value of `valid-codes' property of the coding system.
Diffstat (limited to 'lisp/international/encoded-kb.el')
-rw-r--r--lisp/international/encoded-kb.el12
1 files changed, 8 insertions, 4 deletions
diff --git a/lisp/international/encoded-kb.el b/lisp/international/encoded-kb.el
index ef1fd423004..68a04bafff4 100644
--- a/lisp/international/encoded-kb.el
+++ b/lisp/international/encoded-kb.el
@@ -237,10 +237,14 @@ The following key sequence may cause multilingual text insertion."
(defun encoded-kbd-self-insert-ccl ()
(interactive)
(let ((str (char-to-string last-command-char))
- (coding (keyboard-coding-system)))
- (setq str (decode-coding-string str coding))
+ (ccl (car (aref (coding-system-spec (keyboard-coding-system)) 4)))
+ (vec (make-vector 9 nil))
+ result)
+ (while (= (length (setq result (ccl-execute-on-string ccl vec str t))) 0)
+ (setq str (format "%s%c" str (read-char-exclusive))
+ vec (make-vector 9 nil)))
(setq unread-command-events
- (append (string-to-list str) unread-command-events))))
+ (append (string-to-list result) unread-command-events))))
(defun encoded-kbd-setup-keymap (coding)
;; At first, reset the keymap.
@@ -277,7 +281,7 @@ The following key sequence may cause multilingual text insertion."
((eq encoded-kbd-coding 'ccl)
(let ((valid-codes (or (coding-system-get coding 'valid-codes)
- '((128 255))))
+ '((128 . 255))))
elt from to)
(while valid-codes
(setq elt (car valid-codes) valid-codes (cdr valid-codes))