;; 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.
(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))
(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.