]> git.eshelyaron.com Git - emacs.git/commitdiff
(lao-key-alist): Declare it by defvar.
authorKenichi Handa <handa@m17n.org>
Sat, 4 Dec 2004 02:49:34 +0000 (02:49 +0000)
committerKenichi Handa <handa@m17n.org>
Sat, 4 Dec 2004 02:49:34 +0000 (02:49 +0000)
(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.

leim/ChangeLog
leim/quail/lao.el

index 7bff23067d6739e497efd1da8963a7f24cbd6a35..df9923f6a29ca89b34a343cf7be6ef1224217445 100644 (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
index 003cbb43be1309be2eae11a4def445e4b842a2d7..c5f66bba813454abd2dbd79039e745c790bb5554 100644 (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")
     ("\\7" . "\e(1w\e(B")
     ("\\8" . "\e(1x\e(B")
     ("\\9" . "\e(1y\e(B")
-    ))
-
-(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)
+    )
+  "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.")
+
+;; 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" "\e(1E\e(B" t