]> code.delx.au - gnu-emacs/blobdiff - lisp/language/lao-util.el
Remove redundant unicodes in
[gnu-emacs] / lisp / language / lao-util.el
index 1fca9c4dbb55902f02166aac852eb89f30ce00cc..9a14e581e4aab8efabe4ba68b738d5be3d168d36 100644 (file)
@@ -2,8 +2,9 @@
 
 ;; Copyright (C) 1997 Electrotechnical Laboratory, JAPAN.
 ;; Licensed to the Free Software Foundation.
+;; Copyright (C) 2001 Free Software Foundation, Inc.
 
-;; Keywords: multilingual, Lao
+;; Keywords: multilingual, Lao, i18n
 
 ;; This file is part of GNU Emacs.
 
@@ -34,6 +35,8 @@
 (define-category ?v "Lao upper/lower vowel" lao-category-table)
 (define-category ?t "Lao tone" lao-category-table)
 
+;; Fixme: Should `invalid' entries below be preserved?  (See also
+;; thai-util.el.)
 (let ((l '((?\e(1!\e(B consonant "LETTER KOR  KAI'" "CHICKEN")
           (?\e(1"\e(B consonant "LETTER KHOR KHAI'" "EGG")
           (?\e(1#\e(B invalid nil)
           (?\e(1{\e(B invalid nil)
           (?\e(1|\e(B consonant "LETTER NHOR NHUU" "MOUSE")
           (?\e(1}\e(B consonant "LETTER MHOR MHAR" "DOG")
-          (?\e(1~\e(B invalid nil)
-          ))
+          (?\e(1~\e(B invalid nil)))
       elm)
   (while l
     (setq elm (car l) l (cdr l))
 
 (defconst lao-vowel-reordering-rule
   '(("\e(1P\e(B" (0 ?\e(1P\e(B) (0 ?\e(1Q\e(B))
+    ("\e(1R\e(B" (0 ?\e(1R\e(B))
+    ("\e(1T\e(B" (0 ?\e(1U\e(B))
+    ("\e(1U\e(B" (0 ?\e(1U\e(B))
+    ("\e(1V\e(B" (0 ?\e(1V\e(B))
+    ("\e(1W\e(B" (0 ?\e(1W\e(B))
+    ("\e(1X\e(B" (0 ?\e(1X\e(B))
+    ("\e(1Y\e(B" (0 ?\e(1Y\e(B))
+    ("\e(1`P\e(B" (?\e(1`\e(B 0 ?\e(1P\e(B) (?\e(1`\e(B 0 ?\e(1Q\e(B))
+    ("\e(1`\e(B" (?\e(1`\e(B 0))
+    ("\e(1aP\e(B" (?\e(1a\e(B 0 ?\e(1P\e(B) (?\e(1a\e(B 0 ?\e(1Q\e(B))
+    ("\e(1a\e(B" (?\e(1a\e(B 0))
+    ("\e(1bP\e(B" (?\e(1b\e(B 0 ?\e(1P\e(B) (0 ?\e(1[\e(B) (?\e(1-\e(B ?\e(1b\e(B 0 ?\e(1Q\e(B) (?\e(1G\e(B ?\e(1b\e(B 0 ?\e(1Q\e(B))
+    ("\e(1b\e(B" (?\e(1b\e(B 0))
+    ("\e(1`RP\e(B" (?\e(1`\e(B 0 ?\e(1R\e(B ?\e(1P\e(B) (0 ?\e(1Q\e(B ?\e(1M\e(B))
+    ("\e(1m\e(B" (0 ?\e(1m\e(B) (0 ?\e(1M\e(B))
+    ("\e(1`T\e(B" (?\e(1`\e(B 0 ?\e(1T\e(B))
+    ("\e(1`U\e(B" (?\e(1`\e(B 0 ?\e(1U\e(B))
+    ("\e(1[GP\e(B" (0 ?\e(1[\e(B ?\e(1G\e(B ?\e(1P\e(B) (0 ?\e(1Q\e(B ?\e(1G\e(B))
+    ("\e(1[G\e(B" (0 ?\e(1[\e(B ?\e(1G\e(B) (0 ?\e(1G\e(B))
+    ("\e(1`Q]P\e(B" (?\e(1`\e(B 0 ?\e(1Q\e(B ?\e(1]\e(B ?\e(1P\e(B) (0 ?\e(1Q\e(B ?\e(1]\e(B))
+    ("\e(1`Q]\e(B" (?\e(1`\e(B 0 ?\e(1Q\e(B ?\e(1]\e(B) (0 ?\e(1]\e(B))
+    ("\e(1`VM\e(B" (?\e(1`\e(B 0 ?\e(1V\e(B ?\e(1M\e(B))
+    ("\e(1`WM\e(B" (?\e(1`\e(B 0 ?\e(1W\e(B ?\e(1M\e(B))
+    ("\e(1d\e(B" (?\e(1d\e(B 0))
+    ("\e(1c\e(B" (?\e(1c\e(B 0))
+    ("\e(1`[R\e(B" (?\e(1`\e(B 0 ?\e(1[\e(B ?\e(1R\e(B))
+    ("\e(1S\e(B" (0 ?\e(1S\e(B))
+
+    ;; Unicode equivalents
+    ("\e(1P\e(B" (0 ?\e(1P\e(B) (0 ?\e(1Q\e(B))
     ("\e(1R\e(B" (0 ?\e(1R\e(B))
     ("\e(1T\e(B" (0 ?\e(1U\e(B))
     ("\e(1U\e(B" (0 ?\e(1U\e(B))
@@ -486,6 +518,11 @@ syllable.  In that case, FROM and TO are indexes to STR."
        (concat lao-str (substring str from to))
       lao-str)))
 
+;;;###autoload
+(defun lao-post-read-conversion (len)
+  (lao-compose-region (point) (+ (point) len))
+  len)
+
 ;;;###autoload
 (defun lao-composition-function (from to pattern &optional string)
   "Compose Lao text in the region FROM and TO.