(lao-key-alist): Declare it by defvar.

(lao-key-alist-vector): New variable.
(lao-consonant-key-alist, lao-semivowel-key-alist)
(lao-vowel-key-alist, lao-voweltone-key-alist)
(lao-tone-key-alist, lao-other-key-alist): Initialize them from
lao-key-alist-vector.
This commit is contained in:
Kenichi Handa 2004-12-04 02:49:34 +00:00
parent 6108209e54
commit a3341d3c44
2 changed files with 55 additions and 31 deletions

View file

@ -1,3 +1,12 @@
2004-12-04 Kenichi Handa <handa@m17n.org>
* quail/lao.el (lao-key-alist): Declare it by defvar.
(lao-key-alist-vector): New variable.
(lao-consonant-key-alist, lao-semivowel-key-alist)
(lao-vowel-key-alist, lao-voweltone-key-alist)
(lao-tone-key-alist, lao-other-key-alist): Initialize them from
lao-key-alist-vector.
2004-09-25 Kenichi Handa <handa@m17n.org>
* quail/uni-input.el (ucs-input-method): Add error clause to

View file

@ -2,6 +2,9 @@
;; Copyright (C) 1997 Electrotechnical Laboratory, JAPAN.
;; Licensed to the Free Software Foundation.
;; Copyright (C) 2004
;; National Institute of Advanced Industrial Science and Technology (AIST)
;; Registration Number H14PRO021
;; Keywords: multilingual, input method, Lao
@ -42,7 +45,7 @@
(compose-string (quail-lookup-map-and-concat quail-current-key))))
control-flag)
(defconst lao-key-alist
(defvar lao-key-alist
'(("!" . "1")
("\"" . "=")
("#" . "3")
@ -146,38 +149,50 @@
("\\7" . "(1w(B")
("\\8" . "(1x(B")
("\\9" . "(1y(B")
))
)
"Alist of key sequences vs the corresponding Lao string to input.
This variable is for the input method \"lao\".
If you change the value of this variable while quail/lao is already loaded,
you need to re-load it to properly re-initialize related alists.")
(defconst lao-consonant-key-alist nil)
(defconst lao-semivowel-key-alist nil)
(defconst lao-vowel-key-alist nil)
(defconst lao-voweltone-key-alist nil)
(defconst lao-tone-key-alist nil)
(defconst lao-other-key-alist nil)
(let ((tail lao-key-alist)
elt phonetic-type)
(while tail
(setq elt (car tail) tail (cdr tail))
(if (stringp (cdr elt))
(setq phonetic-type (get-char-code-property (aref (cdr elt) 0)
;; Temporary variable to initialize lao-consonant-key-alist, etc.
(defconst lao-key-alist-vector
(let ((tail lao-key-alist)
consonant-key-alist semivowel-key-alist vowel-key-alist
voweltone-key-alist tone-key-alist other-key-alist
elt phonetic-type)
(while tail
(setq elt (car tail) tail (cdr tail))
(if (stringp (cdr elt))
(setq phonetic-type (get-char-code-property (aref (cdr elt) 0)
'phonetic-type))
(setq phonetic-type (get-char-code-property (aref (aref (cdr elt) 0) 0)
'phonetic-type))
(setq phonetic-type (get-char-code-property (aref (aref (cdr elt) 0) 0)
'phonetic-type))
(aset (cdr elt) 0 (compose-string (aref (cdr elt) 0))))
(cond ((eq phonetic-type 'consonant)
(setq lao-consonant-key-alist (cons elt lao-consonant-key-alist)))
((memq phonetic-type '(vowel-upper vowel-lower))
(if (stringp (cdr elt))
(setq lao-vowel-key-alist (cons elt lao-vowel-key-alist))
(setq lao-voweltone-key-alist
(cons elt lao-voweltone-key-alist))))
((eq phonetic-type 'tone)
(setq lao-tone-key-alist (cons elt lao-tone-key-alist)))
((eq phonetic-type 'semivowel-lower)
(setq lao-semivowel-key-alist (cons elt lao-semivowel-key-alist)))
(t
(setq lao-other-key-alist (cons elt lao-other-key-alist))))))
(aset (cdr elt) 0 (compose-string (aref (cdr elt) 0))))
(cond ((eq phonetic-type 'consonant)
(setq consonant-key-alist (cons elt consonant-key-alist)))
((memq phonetic-type '(vowel-upper vowel-lower))
(if (stringp (cdr elt))
(setq vowel-key-alist (cons elt vowel-key-alist))
(setq voweltone-key-alist (cons elt voweltone-key-alist))))
((eq phonetic-type 'tone)
(setq tone-key-alist (cons elt tone-key-alist)))
((eq phonetic-type 'semivowel-lower)
(setq semivowel-key-alist (cons elt semivowel-key-alist)))
(t
(setq other-key-alist (cons elt other-key-alist)))))
(vector consonant-key-alist semivowel-key-alist vowel-key-alist
voweltone-key-alist tone-key-alist other-key-alist)))
(defconst lao-consonant-key-alist (aref lao-key-alist-vector 0))
(defconst lao-semivowel-key-alist (aref lao-key-alist-vector 1))
(defconst lao-vowel-key-alist (aref lao-key-alist-vector 2))
(defconst lao-voweltone-key-alist (aref lao-key-alist-vector 3))
(defconst lao-tone-key-alist (aref lao-key-alist-vector 4))
(defconst lao-other-key-alist (aref lao-key-alist-vector 5))
;; Done with it.
(makunbound 'lao-key-alist-vector)
(quail-define-package
"lao" "Lao" "(1E(B" t