diff options
Diffstat (limited to 'lisp/language/thai-util.el')
-rw-r--r-- | lisp/language/thai-util.el | 128 |
1 files changed, 19 insertions, 109 deletions
diff --git a/lisp/language/thai-util.el b/lisp/language/thai-util.el index 58588f974d7..251c1fee5bc 100644 --- a/lisp/language/thai-util.el +++ b/lisp/language/thai-util.el @@ -1,9 +1,12 @@ ;;; thai-util.el --- utilities for Thai -*- coding: iso-2022-7bit; -*- ;; Copyright (C) 1995 Electrotechnical Laboratory, JAPAN. -;; Licensed to the Free Software Foundation. +;; Licensed to the Free Software Foundation. +;; Copyright (C) 2003 +;; National Institute of Advanced Industrial Science and Technology (AIST) +;; Registration Number H13PRO009 -;; Keywords: mule, multilingual, thai +;; Keywords: mule, multilingual, Thai, i18n ;; This file is part of GNU Emacs. @@ -139,95 +142,6 @@ (?,T|(B invalid nil) ; 0xFC (?,T}(B invalid nil) ; 0xFD (?,T~(B invalid nil) ; 0xFE - - ;; Unicode equivalents - (?$,1Ba(B consonant "LETTER KO KAI") - (?$,1Bb(B consonant "LETTER KHO KHAI") - (?$,1Bc(B consonant "LETTER KHO KHUAT") - (?$,1Bd(B consonant "LETTER KHO KHWAI") - (?$,1Be(B consonant "LETTER KHO KHON") - (?$,1Bf(B consonant "LETTER KHO RAKHANG") - (?$,1Bg(B consonant "LETTER NGO NGU") - (?$,1Bh(B consonant "LETTER CHO CHAN") - (?$,1Bi(B consonant "LETTER CHO CHING") - (?$,1Bj(B consonant "LETTER CHO CHANG") - (?$,1Bk(B consonant "LETTER SO SO") - (?$,1Bl(B consonant "LETTER CHO CHOE") - (?$,1Bm(B consonant "LETTER YO YING") - (?$,1Bn(B consonant "LETTER DO CHADA") - (?$,1Bo(B consonant "LETTER TO PATAK") - (?$,1Bp(B consonant "LETTER THO THAN") - (?$,1Bq(B consonant "LETTER THO NANGMONTHO") - (?$,1Br(B consonant "LETTER THO PHUTHAO") - (?$,1Bs(B consonant "LETTER NO NEN") - (?$,1Bt(B consonant "LETTER DO DEK") - (?$,1Bu(B consonant "LETTER TO TAO") - (?$,1Bv(B consonant "LETTER THO THUNG") - (?$,1Bw(B consonant "LETTER THO THAHAN") - (?$,1Bx(B consonant "LETTER THO THONG") - (?$,1By(B consonant "LETTER NO NU") - (?$,1Bz(B consonant "LETTER BO BAIMAI") - (?$,1B{(B consonant "LETTER PO PLA") - (?$,1B|(B consonant "LETTER PHO PHUNG") - (?$,1B}(B consonant "LETTER FO FA") - (?$,1B~(B consonant "LETTER PHO PHAN") - (?$,1B(B consonant "LETTER FO FAN") - (?$,1C (B consonant "LETTER PHO SAMPHAO") - (?$,1C!(B consonant "LETTER MO MA") - (?$,1C"(B consonant "LETTER YO YAK") - (?$,1C#(B consonant "LETTER RO RUA") - (?$,1C$(B vowel-base "LETTER RU (Pali vowel letter)") - (?$,1C%(B consonant "LETTER LO LING") - (?$,1C&(B vowel-base "LETTER LU (Pali vowel letter)") - (?$,1C'(B consonant "LETTER WO WAEN") - (?$,1C((B consonant "LETTER SO SALA") - (?$,1C)(B consonant "LETTER SO RUSI") - (?$,1C*(B consonant "LETTER SO SUA") - (?$,1C+(B consonant "LETTER HO HIP") - (?$,1C,(B consonant "LETTER LO CHULA") - (?$,1C-(B consonant "LETTER O ANG") - (?$,1C.(B consonant "LETTER HO NOK HUK") - (?$,1C/(B special "PAI YAN NOI (abbreviation)") - (?$,1C0(B vowel-base "VOWEL SIGN SARA A") - (?$,1C1(B vowel-upper "VOWEL SIGN MAI HAN-AKAT N/S-T") - (?$,1C2(B vowel-base "VOWEL SIGN SARA AA") - (?$,1C3(B vowel-base "VOWEL SIGN SARA AM") - (?$,1C4(B vowel-upper "VOWEL SIGN SARA I N/S-T") - (?$,1C5(B vowel-upper "VOWEL SIGN SARA II N/S-T") - (?$,1C6(B vowel-upper "VOWEL SIGN SARA UE N/S-T") - (?$,1C7(B vowel-upper "VOWEL SIGN SARA UEE N/S-T") - (?$,1C8(B vowel-lower "VOWEL SIGN SARA U N/S-B") - (?$,1C9(B vowel-lower "VOWEL SIGN SARA UU N/S-B") - (?$,1C:(B vowel-lower "VOWEL SIGN PHINTHU N/S-B (Pali virama)") - (?$,1C?(B special "BAHT SIGN (currency symbol)") - (?$,1C@(B vowel-base "VOWEL SIGN SARA E") - (?$,1CA(B vowel-base "VOWEL SIGN SARA AE") - (?$,1CB(B vowel-base "VOWEL SIGN SARA O") - (?$,1CC(B vowel-base "VOWEL SIGN SARA MAI MUAN") - (?$,1CD(B vowel-base "VOWEL SIGN SARA MAI MALAI") - (?$,1CE(B vowel-base "LAK KHANG YAO") - (?$,1CF(B special "MAI YAMOK (repetion)") - (?$,1CG(B vowel-upper "VOWEL SIGN MAI TAI KHU N/S-T") - (?$,1CH(B tone "TONE MAI EK N/S-T") - (?$,1CI(B tone "TONE MAI THO N/S-T") - (?$,1CJ(B tone "TONE MAI TRI N/S-T") - (?$,1CK(B tone "TONE MAI CHATTAWA N/S-T") - (?$,1CL(B tone "THANTHAKHAT N/S-T (cancellation mark)") - (?$,1CM(B tone "NIKKHAHIT N/S-T (final nasal)") - (?$,1CN(B vowel-upper "YAMAKKAN N/S-T") - (?$,1CO(B special "FONRMAN") - (?$,1CP(B special "DIGIT ZERO") - (?$,1CQ(B special "DIGIT ONE") - (?$,1CR(B special "DIGIT TWO") - (?$,1CS(B special "DIGIT THREE") - (?$,1CT(B special "DIGIT FOUR") - (?$,1CU(B special "DIGIT FIVE") - (?$,1CV(B special "DIGIT SIX") - (?$,1CW(B special "DIGIT SEVEN") - (?$,1CX(B special "DIGIT EIGHT") - (?$,1CY(B special "DIGIT NINE") - (?$,1CZ(B special "ANGKHANKHU (ellipsis)") - (?$,1C[(B special "KHOMUT (beginning of religious texts)") )) elm) (while l @@ -273,24 +187,20 @@ positions (integers or markers) specifying the region." (thai-compose-region (point-min) (point-max))) ;;;###autoload -(defun thai-post-read-conversion (len) - (thai-compose-region (point) (+ (point) len)) - len) - -;;;###autoload -(defun thai-composition-function (from to pattern &optional string) - "Compose Thai text in the region FROM and TO. -The text matches the regular expression PATTERN. -Optional 4th argument STRING, if non-nil, is a string containing text -to compose. - -The return value is number of composed characters." - (if (< (1+ from) to) - (progn - (if string - (compose-string string from to) - (compose-region from to)) - (- to from)))) +(defun thai-composition-function (pos &optional string) + (setq pos (1- pos)) + (let ((pattern "[,T!(B-,TCEG(B-,TN!(B-,TCEG(B-,TN(B][,TQT(B-,TWgnX(B-,TZQT(B-,TWgnX(B-,TZ(B]?[,Th(B-,Tmh(B-,Tm(B]?")) + (if string + (if (and (>= pos 0) + (eq (string-match pattern string pos) pos)) + (prog1 (match-end 0) + (compose-string string pos (match-end 0)))) + (if (>= pos (point-min)) + (progn + (goto-char pos) + (if (looking-at pattern) + (prog1 (match-end 0) + (compose-region pos (match-end 0))))))))) ;; (provide 'thai-util) |