# HG changeset patch # User Kenichi Handa # Date 1111128828 0 # Node ID 7c239dedaeead5e4b571c7d69b443dbc3926a937 # Parent e3798cf289c08598f840823a56f6f458955fb5fb (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. diff -r e3798cf289c0 -r 7c239dedaeea leim/quail/thai.el --- a/leim/quail/thai.el Fri Mar 18 06:51:41 2005 +0000 +++ b/leim/quail/thai.el Fri Mar 18 06:53:48 2005 +0000 @@ -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 @@ ',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 @@ (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