# HG changeset patch # User Kenichi Handa # Date 1102128347 0 # Node ID 592861b6d3c5f8d06c94f745a02aa7e70265f145 # Parent 3d69c011b6e17059b02e6e04e3c3892915ed0ae8 (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. diff -r 3d69c011b6e1 -r 592861b6d3c5 leim/quail/lao.el --- a/leim/quail/lao.el Sat Dec 04 01:08:08 2004 +0000 +++ b/leim/quail/lao.el Sat Dec 04 02:45:47 2004 +0000 @@ -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