summaryrefslogtreecommitdiff
path: root/leim
diff options
context:
space:
mode:
authorKenichi Handa <handa@m17n.org>2005-03-18 06:54:25 +0000
committerKenichi Handa <handa@m17n.org>2005-03-18 06:54:25 +0000
commit1ab06fdf11c104fff277ba0e109c8dc106a78d29 (patch)
tree7ead17b6f096c517f23f89eb4360c21868b3906e /leim
parent8f9eda28ce69bcae4ad9c1b2663e160d733e1f04 (diff)
downloademacs-1ab06fdf11c104fff277ba0e109c8dc106a78d29.tar.gz
(quail-thai-update-translation): Delete it.
(thai-generate-quail-map): Generate is simple map. ("thai-kesmanee"): Don't use quail-thai-update-translation. (thai-generate-quail-map): Likewise.
Diffstat (limited to 'leim')
-rw-r--r--leim/quail/thai.el57
1 files changed, 15 insertions, 42 deletions
diff --git a/leim/quail/thai.el b/leim/quail/thai.el
index c147ad308e9..dbef1b3d899 100644
--- a/leim/quail/thai.el
+++ b/leim/quail/thai.el
@@ -2,6 +2,9 @@
;; Copyright (C) 1995 Electrotechnical Laboratory, JAPAN.
;; Licensed to the Free Software Foundation.
+;; Copyright (C) 2005
+;; National Institute of Advanced Industrial Science and Technology (AIST)
+;; Registration Number H14PRO021
;; Keywords: multilingual, input method, Thai
@@ -29,46 +32,16 @@
(require 'quail)
(require 'thai-util)
-(defun quail-thai-update-translation (control-flag)
- (if (integerp control-flag)
- ;; Non-composable character typed.
- (setq quail-current-str
- (buffer-substring (overlay-start quail-overlay)
- (overlay-end quail-overlay))
- unread-command-events
- (string-to-list
- (substring quail-current-key control-flag)))
- (setq quail-current-str
- (compose-string (quail-lookup-map-and-concat quail-current-key))))
- control-flag)
-
-(defun thai-generate-quail-map (translation-table)
- (let ((i 0)
- consonant vowel tone voweltone others)
- ;; Categorize Thai characters into one of above.
- (while (< i 128)
- (let ((trans (aref translation-table i))
- ptype)
- (if (eq trans 0)
- nil
- (if (> (length trans) 1)
- (setq ptype 'voweltone
- trans (vector (compose-string trans)))
- (setq ptype (get-char-code-property (aref trans 0) 'phonetic-type))
- (cond ((memq ptype '(vowel-upper vowel-lower))
- (setq ptype 'vowel))
- ((not (memq ptype '(consonant tone)))
- (setq ptype 'others))))
- (set ptype (cons (cons (char-to-string i) trans)
- (symbol-value ptype)))))
- (setq i (1+ i)))
-
- (quail-map-from-table
- '((base-state (consonant . vt-state)
- vowel tone voweltone others)
- (vt-state (vowel . t-state)
- voweltone tone)
- (t-state tone)))))
+(defmacro thai-generate-quail-map (translation-table)
+ (let (map)
+ (dotimes (i (length translation-table))
+ (let ((trans (aref translation-table i)))
+ (when (not (eq trans 0))
+ (if (> (length trans) 1)
+ (setq trans (vector trans))
+ (setq trans (aref trans 0)))
+ (setq map (cons (list (char-to-string i) trans) map)))))
+ `(quail-define-rules ,@map)))
;; Thai Kesmanee keyboard support.
@@ -80,7 +53,7 @@ The difference from the ordinal Thai keyboard:
',T_(B' and ',To(B' are assigned to '\\' and '|' respectively,
',T#(B' and ',T%(B' are assigned to '`' and '~' respectively,
Don't know where to assign characters ',Tz(B' and ',T{(B'."
- nil t t t t nil nil nil 'quail-thai-update-translation nil t)
+ nil t t t t nil nil nil nil nil t)
(quail-install-map
(thai-generate-quail-map
@@ -122,7 +95,7 @@ The difference from the ordinal Thai keyboard:
(quail-define-package
"thai-pattachote" "Thai" ",T!;(B>" t
"Thai Pattachote input method with TIS620 keyboard layout"
- nil t t t t nil nil nil 'quail-thai-update-translation nil t)
+ nil t t t t nil nil nil nil nil t)
(quail-install-map
(thai-generate-quail-map