# HG changeset patch # User Aidan Kehoe # Date 1302270260 -3600 # Node ID 75469840109bcd2bc7f84f30e9e9e9f26f9b1c36 # Parent ccf7e84fe265cc4bc9db2ea13972c5c3e49d8792 Drop support for Thai-XTIS, which was always non-standard and never used. lisp/ChangeLog addition: 2011-04-08 Aidan Kehoe * unicode.el (load-unicode-tables): No longer include thai-xtis in the default Unicode precedence list. * mule/thai.el: * mule/thai.el (tis-620): * mule/thai.el (windows-874): * mule/thai.el ("Thai"): Move the Thai language environment and the TIS-620 coding system to this file; add support for Microsoft's code page 874. * mule/thai-util.el: * mule/thai-xtis.el: Remove these two files; XTIS was always non-standard and was never widely implemented, and we've never supported the character composition necessary for thai-util.el. * dumped-lisp.el (preloaded-file-list): Drop thai-xtis, dump thai.el instead. diff -r ccf7e84fe265 -r 75469840109b lisp/ChangeLog --- a/lisp/ChangeLog Mon Apr 04 20:34:17 2011 +0100 +++ b/lisp/ChangeLog Fri Apr 08 14:44:20 2011 +0100 @@ -1,3 +1,21 @@ +2011-04-08 Aidan Kehoe + + * unicode.el (load-unicode-tables): + No longer include thai-xtis in the default Unicode precedence list. + * mule/thai.el: + * mule/thai.el (tis-620): + * mule/thai.el (windows-874): + * mule/thai.el ("Thai"): + Move the Thai language environment and the TIS-620 coding system + to this file; add support for Microsoft's code page 874. + * mule/thai-util.el: + * mule/thai-xtis.el: + Remove these two files; XTIS was always non-standard and was never + widely implemented, and we've never supported the character + composition necessary for thai-util.el. + * dumped-lisp.el (preloaded-file-list): + Drop thai-xtis, dump thai.el instead. + 2011-04-02 Aidan Kehoe * cl.el (cadr, caddr, cadddr): diff -r ccf7e84fe265 -r 75469840109b lisp/dumped-lisp.el --- a/lisp/dumped-lisp.el Mon Apr 04 20:34:17 2011 +0100 +++ b/lisp/dumped-lisp.el Fri Apr 08 14:44:20 2011 +0100 @@ -205,10 +205,7 @@ "mule/lao" ; sucks. "mule/latin" "mule/misc-lang" - ;; "thai" #### merge thai and thai-xtis!!! - ;; #### Even better; take out thai-xtis! It's not even a - ;; standard, and no-one uses it. - "mule/thai-xtis" + "mule/thai" "mule/tibetan" "mule/vietnamese" )) diff -r ccf7e84fe265 -r 75469840109b lisp/mule/thai-util.el --- a/lisp/mule/thai-util.el Mon Apr 04 20:34:17 2011 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,211 +0,0 @@ -;;; thai-util.el --- utilities for Thai -*- coding: iso-2022-7bit; -*- - -;; Copyright (C) 1995 Electrotechnical Laboratory, JAPAN. -;; Licensed to the Free Software Foundation. - -;; Keywords: mule, multilingual, thai - -;; This file is part of XEmacs. - -;; XEmacs is free software; you can redistribute it and/or modify it -;; under the terms of the GNU General Public License as published by -;; the Free Software Foundation; either version 2, or (at your option) -;; any later version. - -;; XEmacs is distributed in the hope that it will be useful, but -;; WITHOUT ANY WARRANTY; without even the implied warranty of -;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -;; General Public License for more details. - -;; You should have received a copy of the GNU General Public License -;; along with XEmacs; see the file COPYING. If not, write to the Free -;; Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -;; 02111-1307, USA. - -;;; Synched up with: Emacs 21.1 (language/thai-util.el). - -;;; Commentary: - -;;; Code: - -;; Setting information of Thai characters. - -(defconst thai-category-table (make-category-table)) -(define-category ?c "Thai consonant" thai-category-table) -(define-category ?v "Thai upper/lower vowel" thai-category-table) -(define-category ?t "Thai tone" thai-category-table) - -;; The general composing rules are as follows: -;; -;; T -;; V T V T -;; CV -> C, CT -> C, CVT -> C, Cv -> C, CvT -> C -;; v v -;; -;; where C: consonant, V: vowel upper, v: vowel lower, T: tone mark. - -(defvar thai-composition-pattern "\\cc\\(\\ct\\|\\cv\\ct?\\)" - "Regular expression matching a Thai composite sequence.") - -(let ((l '((?,T!(B consonant "LETTER KO KAI") ; 0xA1 - (?,T"(B consonant "LETTER KHO KHAI") ; 0xA2 - (?,T#(B consonant "LETTER KHO KHUAT") ; 0xA3 - (?,T$(B consonant "LETTER KHO KHWAI") ; 0xA4 - (?,T%(B consonant "LETTER KHO KHON") ; 0xA5 - (?,T&(B consonant "LETTER KHO RAKHANG") ; 0xA6 - (?,T'(B consonant "LETTER NGO NGU") ; 0xA7 - (?,T((B consonant "LETTER CHO CHAN") ; 0xA8 - (?,T)(B consonant "LETTER CHO CHING") ; 0xA9 - (?,T*(B consonant "LETTER CHO CHANG") ; 0xAA - (?,T+(B consonant "LETTER SO SO") ; 0xAB - (?,T,(B consonant "LETTER CHO CHOE") ; 0xAC - (?,T-(B consonant "LETTER YO YING") ; 0xAD - (?,T.(B consonant "LETTER DO CHADA") ; 0xAE - (?,T/(B consonant "LETTER TO PATAK") ; 0xAF - (?,T0(B consonant "LETTER THO THAN") ; 0xB0 - (?,T1(B consonant "LETTER THO NANGMONTHO") ; 0xB1 - (?,T2(B consonant "LETTER THO PHUTHAO") ; 0xB2 - (?,T3(B consonant "LETTER NO NEN") ; 0xB3 - (?,T4(B consonant "LETTER DO DEK") ; 0xB4 - (?,T5(B consonant "LETTER TO TAO") ; 0xB5 - (?,T6(B consonant "LETTER THO THUNG") ; 0xB6 - (?,T7(B consonant "LETTER THO THAHAN") ; 0xB7 - (?,T8(B consonant "LETTER THO THONG") ; 0xB8 - (?,T9(B consonant "LETTER NO NU") ; 0xB9 - (?,T:(B consonant "LETTER BO BAIMAI") ; 0xBA - (?,T;(B consonant "LETTER PO PLA") ; 0xBB - (?,T<(B consonant "LETTER PHO PHUNG") ; 0xBC - (?,T=(B consonant "LETTER FO FA") ; 0xBD - (?,T>(B consonant "LETTER PHO PHAN") ; 0xBE - (?,T?(B consonant "LETTER FO FAN") ; 0xBF - (?,T@(B consonant "LETTER PHO SAMPHAO") ; 0xC0 - (?,TA(B consonant "LETTER MO MA") ; 0xC1 - (?,TB(B consonant "LETTER YO YAK") ; 0xC2 - (?,TC(B consonant "LETTER RO RUA") ; 0xC3 - (?,TD(B vowel-base "LETTER RU (Pali vowel letter)") ; 0xC4 - (?,TE(B consonant "LETTER LO LING") ; 0xC5 - (?,TF(B vowel-base "LETTER LU (Pali vowel letter)") ; 0xC6 - (?,TG(B consonant "LETTER WO WAEN") ; 0xC7 - (?,TH(B consonant "LETTER SO SALA") ; 0xC8 - (?,TI(B consonant "LETTER SO RUSI") ; 0xC9 - (?,TJ(B consonant "LETTER SO SUA") ; 0xCA - (?,TK(B consonant "LETTER HO HIP") ; 0xCB - (?,TL(B consonant "LETTER LO CHULA") ; 0xCC - (?,TM(B consonant "LETTER O ANG") ; 0xCD - (?,TN(B consonant "LETTER HO NOK HUK") ; 0xCE - (?,TO(B special "PAI YAN NOI (abbreviation)") ; 0xCF - (?,TP(B vowel-base "VOWEL SIGN SARA A") ; 0xD0 - (?,TQ(B vowel-upper "VOWEL SIGN MAI HAN-AKAT N/S-T") ; 0xD1 - (?,TR(B vowel-base "VOWEL SIGN SARA AA") ; 0xD2 - (?,TS(B vowel-base "VOWEL SIGN SARA AM") ; 0xD3 - (?,TT(B vowel-upper "VOWEL SIGN SARA I N/S-T") ; 0xD4 - (?,TU(B vowel-upper "VOWEL SIGN SARA II N/S-T") ; 0xD5 - (?,TV(B vowel-upper "VOWEL SIGN SARA UE N/S-T") ; 0xD6 - (?,TW(B vowel-upper "VOWEL SIGN SARA UEE N/S-T") ; 0xD7 - (?,TX(B vowel-lower "VOWEL SIGN SARA U N/S-B") ; 0xD8 - (?,TY(B vowel-lower "VOWEL SIGN SARA UU N/S-B") ; 0xD9 - (?,TZ(B vowel-lower "VOWEL SIGN PHINTHU N/S-B (Pali virama)") ; 0xDA - (?,T[(B invalid nil) ; 0xDA - (?,T\(B invalid nil) ; 0xDC - (?,T](B invalid nil) ; 0xDC - (?,T^(B invalid nil) ; 0xDC - (?,T_(B special "BAHT SIGN (currency symbol)") ; 0xDF - (?,T`(B vowel-base "VOWEL SIGN SARA E") ; 0xE0 - (?,Ta(B vowel-base "VOWEL SIGN SARA AE") ; 0xE1 - (?,Tb(B vowel-base "VOWEL SIGN SARA O") ; 0xE2 - (?,Tc(B vowel-base "VOWEL SIGN SARA MAI MUAN") ; 0xE3 - (?,Td(B vowel-base "VOWEL SIGN SARA MAI MALAI") ; 0xE4 - (?,Te(B vowel-base "LAK KHANG YAO") ; 0xE5 - (?,Tf(B special "MAI YAMOK (repetition)") ; 0xE6 - (?,Tg(B vowel-upper "VOWEL SIGN MAI TAI KHU N/S-T") ; 0xE7 - (?,Th(B tone "TONE MAI EK N/S-T") ; 0xE8 - (?,Ti(B tone "TONE MAI THO N/S-T") ; 0xE9 - (?,Tj(B tone "TONE MAI TRI N/S-T") ; 0xEA - (?,Tk(B tone "TONE MAI CHATTAWA N/S-T") ; 0xEB - (?,Tl(B tone "THANTHAKHAT N/S-T (cancellation mark)") ; 0xEC - (?,Tm(B tone "NIKKHAHIT N/S-T (final nasal)") ; 0xED - (?,Tn(B vowel-upper "YAMAKKAN N/S-T") ; 0xEE - (?,To(B special "FONRMAN") ; 0xEF - (?,Tp(B special "DIGIT ZERO") ; 0xF0 - (?,Tq(B special "DIGIT ONE") ; 0xF1 - (?,Tr(B special "DIGIT TWO") ; 0xF2 - (?,Ts(B special "DIGIT THREE") ; 0xF3 - (?,Tt(B special "DIGIT FOUR") ; 0xF4 - (?,Tu(B special "DIGIT FIVE") ; 0xF5 - (?,Tv(B special "DIGIT SIX") ; 0xF6 - (?,Tw(B special "DIGIT SEVEN") ; 0xF7 - (?,Tx(B special "DIGIT EIGHT") ; 0xF8 - (?,Ty(B special "DIGIT NINE") ; 0xF9 - (?,Tz(B special "ANGKHANKHU (ellipsis)") ; 0xFA - (?,T{(B special "KHOMUT (beginning of religious texts)") ; 0xFB - (?,T|(B invalid nil) ; 0xFC - (?,T}(B invalid nil) ; 0xFD - (?,T~(B invalid nil) ; 0xFE - )) - elm) - (while l - (setq elm (car l) l (cdr l)) - (let ((char (car elm)) - (ptype (nth 1 elm))) - (put-char-code-property char 'phonetic-type ptype) - (cond ((eq ptype 'consonant) - (modify-category-entry char ?c thai-category-table)) - ((memq ptype '(vowel-upper vowel-lower)) - (modify-category-entry char ?v thai-category-table)) - ((eq ptype 'tone) - (modify-category-entry char ?t thai-category-table))) - (put-char-code-property char 'name (nth 2 elm))))) - -;;;###autoload -(defun thai-compose-region (beg end) - "Compose Thai characters in the region. -When called from a program, expects two arguments, -positions (integers or markers) specifying the region." - (interactive "r") - (save-restriction - (narrow-to-region beg end) - (goto-char (point-min)) - (with-category-table thai-category-table - (while (re-search-forward thai-composition-pattern nil t) - (compose-region (match-beginning 0) (match-end 0)))))) - -;;;###autoload -(defun thai-compose-string (string) - "Compose Thai characters in STRING and return the resulting string." - (with-category-table thai-category-table - (let ((idx 0)) - (while (setq idx (string-match thai-composition-pattern string idx)) - (compose-string string idx (match-end 0)) - (setq idx (match-end 0))))) - string) - -;;;###autoload -(defun thai-compose-buffer () - "Compose Thai characters in the current buffer." - (interactive) - (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) - (prog1 (- to from) - (if string - (compose-string string from to) - (compose-region from to)) - (- to from)))) - -;; -(provide 'thai-util) - -;;; thai-util.el ends here diff -r ccf7e84fe265 -r 75469840109b lisp/mule/thai-xtis.el --- a/lisp/mule/thai-xtis.el Mon Apr 04 20:34:17 2011 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,370 +0,0 @@ -;;; thai-xtis.el --- Support for Thai (XTIS) -*- coding: iso-2022-7bit; -*- - -;; Copyright (C) 1999 Electrotechnical Laboratory, JAPAN. -;; Licensed to the Free Software Foundation. - -;; Author: TAKAHASHI Naoto -;; MORIOKA Tomohiko -;; Created: 1998-03-27 for Emacs-20.3 by TAKAHASHI Naoto -;; 1999-03-29 imported and modified for XEmacs by MORIOKA Tomohiko - -;; Keywords: mule, multilingual, Thai, XTIS - -;; This file is part of XEmacs. - -;; XEmacs is free software; you can redistribute it and/or modify it -;; under the terms of the GNU General Public License as published by -;; the Free Software Foundation; either version 2, or (at your option) -;; any later version. - -;; XEmacs is distributed in the hope that it will be useful, but -;; WITHOUT ANY WARRANTY; without even the implied warranty of -;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -;; General Public License for more details. - -;; You should have received a copy of the GNU General Public License -;; along with XEmacs; see the file COPYING. If not, write to the Free -;; Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -;; 02111-1307, USA. - -;;; Commentary: - -;; For Thai, the pre-composed character set proposed by -;; Virach Sornlertlamvanich is supported. - -;;; Code: - -(make-charset 'thai-xtis "Precomposed Thai (XTIS by Virach)." - '(registries ["xtis-0"] - dimension 2 - columns 1 - chars 94 - final ?? - graphic 0)) - -(define-category ?x "Precomposed Thai character.") -(modify-category-entry 'thai-xtis ?x) - -(when (featurep 'xemacs) - (let ((deflist '(;; chars syntax - ("$(?!0(B-$(?NxP0R0S0`0(B-$(?e0(B" "w") - ("$(?p0(B-$(?y0(B" "w") - ("$(?O0f0_0o0z0{0(B" "_") - )) - elm chars len syntax to ch i) - (while deflist - (setq elm (car deflist)) - (setq chars (car elm) - len (length chars) - syntax (nth 1 elm) - i 0) - (while (< i len) - (if (= (aref chars i) ?-) - (setq i (1+ i) - to (nth 1 (split-char (aref chars i)))) - (setq ch (nth 1 (split-char (aref chars i))) - to ch)) - (while (<= ch to) - (modify-syntax-entry (vector 'thai-xtis ch) syntax) - (setq ch (1+ ch))) - (setq i (1+ i))) - (setq deflist (cdr deflist)))) - - (put-charset-property 'thai-xtis 'preferred-coding-system 'tis-620) - ) - -;; This is the ccl-decode-thai-xtis automaton. -;; -;; "WRITE x y" == (insert (make-char 'thai-xtis x y)) -;; "write x" == (insert x) -;; rx' == (tis620-to-thai-xtis-second-byte-bitpattern rx) -;; r3 == "no vower nor tone" -;; r4 == (charset-id 'thai-xtis) -;; -;; | input (= r0) -;; state |-------------------------------------------- -;; | consonant | vowel | tone -;; ---------+-------------+-------------+---------------- -;; r1 == 0 | r1 = r0 | WRITE r0,r3 | WRITE r0,r3 -;; r2 == 0 | | | -;; ---------+-------------+-------------+---------------- -;; r1 == C | WRITE r1,r3 | r2 = r0' | WRITE r1,r3|r0' -;; r2 == 0 | r1 = r0 | | r1 = 0 -;; ---------+-------------+-------------+---------------- -;; r1 == C | WRITE r1,r2 | WRITE r1,r2 | WRITE r1,r2|r0' -;; r2 == V | r1 = r0 | WRITE r0,r3 | r1 = r2 = 0 -;; | r2 = 0 | r1 = r2 = 0 | -;; -;; -;; | input (= r0) -;; state |----------------------------------------- -;; | symbol | ASCII | EOF -;; ---------+-------------+-------------+------------- -;; r1 == 0 | WRITE r0,r3 | write r0 | -;; r2 == 0 | | | -;; ---------+-------------+-------------+------------- -;; r1 == C | WRITE r1,r3 | WRITE r1,r3 | WRITE r1,r3 -;; r2 == 0 | WRITE r0,r3 | write r0 | -;; | r1 = 0 | r1 = 0 | -;; ---------+-------------+-------------+------------- -;; r1 == C | WRITE r1,r2 | WRITE r1,r2 | WRITE r1,r2 -;; r2 == V | WRITE r0,r3 | write r0 | -;; | r1 = r2 = 0 | r1 = r2 = 0 | - - -(eval-and-compile - -;; input : r5 = 1st byte, r6 = 2nd byte -;; Their values will be destroyed. -(define-ccl-program ccl-thai-xtis-write - '(0 - ((r5 = ((r5 & #x7F) << 7)) - (r6 = ((r6 & #x7F) | r5)) - (write-multibyte-character r4 r6)))) - -(define-ccl-program ccl-thai-xtis-consonant - '(0 - (if (r1 == 0) - (r1 = r0) - (if (r2 == 0) - ((r5 = r1) (r6 = r3) (call ccl-thai-xtis-write) - (r1 = r0)) - ((r5 = r1) (r6 = r2) (call ccl-thai-xtis-write) - (r1 = r0) - (r2 = 0)))))) - -(define-ccl-program ccl-thai-xtis-vowel - '(0 - ((if (r1 == 0) - ((r5 = r0) (r6 = r3) (call ccl-thai-xtis-write)) - ((if (r2 == 0) - (r2 = ((r0 - 204) << 3)) - ((r5 = r1) (r6 = r2) (call ccl-thai-xtis-write) - (r5 = r0) (r6 = r3) (call ccl-thai-xtis-write) - (r1 = 0) - (r2 = 0)))))))) - -(define-ccl-program ccl-thai-xtis-vowel-d1 - '(0 - ((if (r1 == 0) - ((r5 = r0) (r6 = r3) (call ccl-thai-xtis-write)) - ((if (r2 == 0) - (r2 = #x38) - ((r5 = r1) (r6 = r2) (call ccl-thai-xtis-write) - (r5 = r0) (r6 = r3) (call ccl-thai-xtis-write) - (r1 = 0) - (r2 = 0)))))))) - -(define-ccl-program ccl-thai-xtis-vowel-ee - '(0 - ((if (r1 == 0) - ((r5 = r0) (r6 = r3) (call ccl-thai-xtis-write)) - ((if (r2 == 0) - (r2 = #x78) - ((r5 = r1) (r6 = r2) (call ccl-thai-xtis-write) - (r5 = r0) (r6 = r3) (call ccl-thai-xtis-write) - (r1 = 0) - (r2 = 0)))))))) - -(define-ccl-program ccl-thai-xtis-tone - '(0 - (if (r1 == 0) - ((r5 = r0) (r6 = r3) (call ccl-thai-xtis-write)) - (if (r2 == 0) - ((r5 = r1) (r6 = ((r0 - #xE6) | r3)) (call ccl-thai-xtis-write) - (r1 = 0)) - ((r5 = r1) (r6 = ((r0 - #xE6) | r2)) (call ccl-thai-xtis-write) - (r1 = 0) - (r2 = 0)))))) - -(define-ccl-program ccl-thai-xtis-symbol - '(0 - (if (r1 == 0) - ((r5 = r0) (r6 = r3) (call ccl-thai-xtis-write)) - (if (r2 == 0) - ((r5 = r1) (r6 = r3) (call ccl-thai-xtis-write) - (r5 = r0) (r6 = r3) (call ccl-thai-xtis-write) - (r1 = 0)) - ((r5 = r1) (r6 = r2) (call ccl-thai-xtis-write) - (r5 = r0) (r6 = r3) (call ccl-thai-xtis-write) - (r1 = 0) - (r2 = 0)))))) - -(define-ccl-program ccl-thai-xtis-ascii - '(0 - (if (r1 == 0) - (write r0) - (if (r2 == 0) - ((r5 = r1) (r6 = r3) (call ccl-thai-xtis-write) - (write r0) - (r1 = 0)) - ((r5 = r1) (r6 = r2) (call ccl-thai-xtis-write) - (write r0) - (r1 = 0) - (r2 = 0)))))) - -(define-ccl-program ccl-thai-xtis-eof - '(0 - (if (r1 != 0) - (if (r2 == 0) - ((r5 = r1) (r6 = r3) (call ccl-thai-xtis-write)) - ((r5 = r1) (r6 = r2) (call ccl-thai-xtis-write)))))) - -(define-ccl-program ccl-decode-thai-xtis - `(4 - ((read r0) - (r1 = 0) - (r2 = 0) - (r3 = #x30) - (r4 = ,(charset-id 'thai-xtis)) - (loop - (if (r0 < 161) - (call ccl-thai-xtis-ascii) - (branch (r0 - 161) - (call ccl-thai-xtis-consonant) - (call ccl-thai-xtis-consonant) - (call ccl-thai-xtis-consonant) - (call ccl-thai-xtis-consonant) - (call ccl-thai-xtis-consonant) - (call ccl-thai-xtis-consonant) - (call ccl-thai-xtis-consonant) - (call ccl-thai-xtis-consonant) - (call ccl-thai-xtis-consonant) - (call ccl-thai-xtis-consonant) - (call ccl-thai-xtis-consonant) - (call ccl-thai-xtis-consonant) - (call ccl-thai-xtis-consonant) - (call ccl-thai-xtis-consonant) - (call ccl-thai-xtis-consonant) - (call ccl-thai-xtis-consonant) - (call ccl-thai-xtis-consonant) - (call ccl-thai-xtis-consonant) - (call ccl-thai-xtis-consonant) - (call ccl-thai-xtis-consonant) - (call ccl-thai-xtis-consonant) - (call ccl-thai-xtis-consonant) - (call ccl-thai-xtis-consonant) - (call ccl-thai-xtis-consonant) - (call ccl-thai-xtis-consonant) - (call ccl-thai-xtis-consonant) - (call ccl-thai-xtis-consonant) - (call ccl-thai-xtis-consonant) - (call ccl-thai-xtis-consonant) - (call ccl-thai-xtis-consonant) - (call ccl-thai-xtis-consonant) - (call ccl-thai-xtis-consonant) - (call ccl-thai-xtis-consonant) - (call ccl-thai-xtis-consonant) - (call ccl-thai-xtis-consonant) - (call ccl-thai-xtis-symbol) - (call ccl-thai-xtis-consonant) - (call ccl-thai-xtis-symbol) - (call ccl-thai-xtis-consonant) - (call ccl-thai-xtis-consonant) - (call ccl-thai-xtis-consonant) - (call ccl-thai-xtis-consonant) - (call ccl-thai-xtis-consonant) - (call ccl-thai-xtis-consonant) - (call ccl-thai-xtis-consonant) - (call ccl-thai-xtis-consonant) - (call ccl-thai-xtis-symbol) - (call ccl-thai-xtis-symbol) - (call ccl-thai-xtis-vowel-d1) - (call ccl-thai-xtis-symbol) - (call ccl-thai-xtis-symbol) - (call ccl-thai-xtis-vowel) - (call ccl-thai-xtis-vowel) - (call ccl-thai-xtis-vowel) - (call ccl-thai-xtis-vowel) - (call ccl-thai-xtis-vowel) - (call ccl-thai-xtis-vowel) - (call ccl-thai-xtis-vowel) - nil - nil - nil - nil - (call ccl-thai-xtis-symbol) - (call ccl-thai-xtis-symbol) - (call ccl-thai-xtis-symbol) - (call ccl-thai-xtis-symbol) - (call ccl-thai-xtis-symbol) - (call ccl-thai-xtis-symbol) - (call ccl-thai-xtis-symbol) - (call ccl-thai-xtis-symbol) - (call ccl-thai-xtis-tone) - (call ccl-thai-xtis-tone) - (call ccl-thai-xtis-tone) - (call ccl-thai-xtis-tone) - (call ccl-thai-xtis-tone) - (call ccl-thai-xtis-tone) - (call ccl-thai-xtis-tone) - (call ccl-thai-xtis-vowel-ee) - (call ccl-thai-xtis-symbol) - (call ccl-thai-xtis-symbol) - (call ccl-thai-xtis-symbol) - (call ccl-thai-xtis-symbol) - (call ccl-thai-xtis-symbol) - (call ccl-thai-xtis-symbol) - (call ccl-thai-xtis-symbol) - (call ccl-thai-xtis-symbol) - (call ccl-thai-xtis-symbol) - (call ccl-thai-xtis-symbol) - (call ccl-thai-xtis-symbol) - (call ccl-thai-xtis-symbol) - (call ccl-thai-xtis-symbol) - nil - nil - nil)) - (read r0) - (repeat))) - - (call ccl-thai-xtis-eof))) - -) - -(defconst leading-code-private-21 #x9F) - -(define-ccl-program ccl-encode-thai-xtis - `(1 - ((read r0) - (loop - (if (r0 == ,leading-code-private-21) - ((read r1) - (if (r1 == ,(charset-id 'thai-xtis)) - ((read r0) - (write r0) - (read r0) - (r1 = (r0 & 7)) - (r0 = ((r0 - #xB0) >> 3)) - (if (r0 != 0) - (write r0 [0 209 212 213 214 215 216 217 218 238])) - (if (r1 != 0) - (write r1 [0 231 232 233 234 235 236 237])) - (read r0) - (repeat)) - ((write r0 r1) - (read r0) - (repeat)))) - (write-read-repeat r0)))))) - -(make-coding-system - 'tis-620 'ccl - "TIS620 (Thai)" - `(mnemonic "TIS620" - decode ccl-decode-thai-xtis - encode ccl-encode-thai-xtis - safe-charsets (ascii thai-xtis) - documentation "external=tis620, internal=thai-xtis")) -(coding-system-put 'tis-620 'category 'iso-8-1) - -(set-language-info-alist - "Thai-XTIS" - '((charset thai-xtis) - (coding-system tis-620 iso-2022-7bit) - (tutorial . "TUTORIAL.th") - (tutorial-coding-system . tis-620) - (coding-priority tis-620 iso-2022-7bit) - (sample-text . "$(?!:(B") - (documentation . t))) - -;; thai-xtis.el ends here. diff -r ccf7e84fe265 -r 75469840109b lisp/mule/thai.el --- a/lisp/mule/thai.el Mon Apr 04 20:34:17 2011 +0100 +++ b/lisp/mule/thai.el Fri Apr 08 14:44:20 2011 +0100 @@ -1,4 +1,4 @@ -;;; thai.el --- support for Thai -*- coding: iso-2022-7bit; -*- +;;; thai.el --- support for Thai -*- coding: utf-8; -*- ;; Copyright (C) 1995 Electrotechnical Laboratory, JAPAN. ;; Licensed to the Free Software Foundation. @@ -26,68 +26,246 @@ ;;; Commentary: -;; For Thai, the character set TIS620 is supported. - -;; #### I don't know how this differs from the existing thai-xtis.el so -;; I'm leaving it commented out. - -;;; Code: - -; (make-charset 'thai-tis620 -; "Right-Hand Part of TIS620.2533 (Thai): ISO-IR-166" -; '(dimension -; 1 -; registry "TIS620" -; chars 96 -; columns 1 -; direction l2r -; final ?T -; graphic 1 -; short-name "RHP of TIS620" -; long-name "RHP of Thai (TIS620): ISO-IR-166" -; )) - -; ; (make-coding-system -; ; 'thai-tis620 2 ?T -; ; "8-bit encoding for ASCII (MSB=0) and Thai TIS620 (MSB=1)" -; ; '(ascii thai-tis620 nil nil -; ; nil ascii-eol) -; ; '((safe-charsets ascii thai-tis620) -; ; (post-read-conversion . thai-post-read-conversion))) +(make-coding-system + 'tis-620 'fixed-width + "TIS620 (Thai)" + '(mnemonic "TIS620" + unicode-map + ((#x80 ?\u0080) ;; + (#x81 ?\u0081) ;; + (#x82 ?\u0082) ;; + (#x83 ?\u0083) ;; + (#x84 ?\u0084) ;; + (#x85 ?\u0085) ;; + (#x86 ?\u0086) ;; + (#x87 ?\u0087) ;; + (#x88 ?\u0088) ;; + (#x89 ?\u0089) ;; + (#x8A ?\u008A) ;; + (#x8B ?\u008B) ;; + (#x8C ?\u008C) ;; + (#x8D ?\u008D) ;; + (#x8E ?\u008E) ;; + (#x8F ?\u008F) ;; + (#x90 ?\u0090) ;; + (#x91 ?\u0091) ;; + (#x92 ?\u0092) ;; + (#x93 ?\u0093) ;; + (#x94 ?\u0094) ;; + (#x95 ?\u0095) ;; + (#x96 ?\u0096) ;; + (#x97 ?\u0097) ;; + (#x98 ?\u0098) ;; + (#x99 ?\u0099) ;; + (#x9A ?\u009A) ;; + (#x9B ?\u009B) ;; + (#x9C ?\u009C) ;; + (#x9D ?\u009D) ;; + (#x9E ?\u009E) ;; + (#x9F ?\u009F) ;; + (#xA0 ?\u00A0) ;; NO-BREAK SPACE + (#xA1 ?\u0E01) ;; THAI CHARACTER KO KAI + (#xA2 ?\u0E02) ;; THAI CHARACTER KHO KHAI + (#xA3 ?\u0E03) ;; THAI CHARACTER KHO KHUAT + (#xA4 ?\u0E04) ;; THAI CHARACTER KHO KHWAI + (#xA5 ?\u0E05) ;; THAI CHARACTER KHO KHON + (#xA6 ?\u0E06) ;; THAI CHARACTER KHO RAKHANG + (#xA7 ?\u0E07) ;; THAI CHARACTER NGO NGU + (#xA8 ?\u0E08) ;; THAI CHARACTER CHO CHAN + (#xA9 ?\u0E09) ;; THAI CHARACTER CHO CHING + (#xAA ?\u0E0A) ;; THAI CHARACTER CHO CHANG + (#xAB ?\u0E0B) ;; THAI CHARACTER SO SO + (#xAC ?\u0E0C) ;; THAI CHARACTER CHO CHOE + (#xAD ?\u0E0D) ;; THAI CHARACTER YO YING + (#xAE ?\u0E0E) ;; THAI CHARACTER DO CHADA + (#xAF ?\u0E0F) ;; THAI CHARACTER TO PATAK + (#xB0 ?\u0E10) ;; THAI CHARACTER THO THAN + (#xB1 ?\u0E11) ;; THAI CHARACTER THO NANGMONTHO + (#xB2 ?\u0E12) ;; THAI CHARACTER THO PHUTHAO + (#xB3 ?\u0E13) ;; THAI CHARACTER NO NEN + (#xB4 ?\u0E14) ;; THAI CHARACTER DO DEK + (#xB5 ?\u0E15) ;; THAI CHARACTER TO TAO + (#xB6 ?\u0E16) ;; THAI CHARACTER THO THUNG + (#xB7 ?\u0E17) ;; THAI CHARACTER THO THAHAN + (#xB8 ?\u0E18) ;; THAI CHARACTER THO THONG + (#xB9 ?\u0E19) ;; THAI CHARACTER NO NU + (#xBA ?\u0E1A) ;; THAI CHARACTER BO BAIMAI + (#xBB ?\u0E1B) ;; THAI CHARACTER PO PLA + (#xBC ?\u0E1C) ;; THAI CHARACTER PHO PHUNG + (#xBD ?\u0E1D) ;; THAI CHARACTER FO FA + (#xBE ?\u0E1E) ;; THAI CHARACTER PHO PHAN + (#xBF ?\u0E1F) ;; THAI CHARACTER FO FAN + (#xC0 ?\u0E20) ;; THAI CHARACTER PHO SAMPHAO + (#xC1 ?\u0E21) ;; THAI CHARACTER MO MA + (#xC2 ?\u0E22) ;; THAI CHARACTER YO YAK + (#xC3 ?\u0E23) ;; THAI CHARACTER RO RUA + (#xC4 ?\u0E24) ;; THAI CHARACTER RU + (#xC5 ?\u0E25) ;; THAI CHARACTER LO LING + (#xC6 ?\u0E26) ;; THAI CHARACTER LU + (#xC7 ?\u0E27) ;; THAI CHARACTER WO WAEN + (#xC8 ?\u0E28) ;; THAI CHARACTER SO SALA + (#xC9 ?\u0E29) ;; THAI CHARACTER SO RUSI + (#xCA ?\u0E2A) ;; THAI CHARACTER SO SUA + (#xCB ?\u0E2B) ;; THAI CHARACTER HO HIP + (#xCC ?\u0E2C) ;; THAI CHARACTER LO CHULA + (#xCD ?\u0E2D) ;; THAI CHARACTER O ANG + (#xCE ?\u0E2E) ;; THAI CHARACTER HO NOKHUK + (#xCF ?\u0E2F) ;; THAI CHARACTER PAIYANNOI + (#xD0 ?\u0E30) ;; THAI CHARACTER SARA A + (#xD1 ?\u0E31) ;; THAI CHARACTER MAI HAN-AKAT + (#xD2 ?\u0E32) ;; THAI CHARACTER SARA AA + (#xD3 ?\u0E33) ;; THAI CHARACTER SARA AM + (#xD4 ?\u0E34) ;; THAI CHARACTER SARA I + (#xD5 ?\u0E35) ;; THAI CHARACTER SARA II + (#xD6 ?\u0E36) ;; THAI CHARACTER SARA UE + (#xD7 ?\u0E37) ;; THAI CHARACTER SARA UEE + (#xD8 ?\u0E38) ;; THAI CHARACTER SARA U + (#xD9 ?\u0E39) ;; THAI CHARACTER SARA UU + (#xDA ?\u0E3A) ;; THAI CHARACTER PHINTHU + (#xDF ?\u0E3F) ;; THAI CURRENCY SYMBOL BAHT + (#xE0 ?\u0E40) ;; THAI CHARACTER SARA E + (#xE1 ?\u0E41) ;; THAI CHARACTER SARA AE + (#xE2 ?\u0E42) ;; THAI CHARACTER SARA O + (#xE3 ?\u0E43) ;; THAI CHARACTER SARA AI MAIMUAN + (#xE4 ?\u0E44) ;; THAI CHARACTER SARA AI MAIMALAI + (#xE5 ?\u0E45) ;; THAI CHARACTER LAKKHANGYAO + (#xE6 ?\u0E46) ;; THAI CHARACTER MAIYAMOK + (#xE7 ?\u0E47) ;; THAI CHARACTER MAITAIKHU + (#xE8 ?\u0E48) ;; THAI CHARACTER MAI EK + (#xE9 ?\u0E49) ;; THAI CHARACTER MAI THO + (#xEA ?\u0E4A) ;; THAI CHARACTER MAI TRI + (#xEB ?\u0E4B) ;; THAI CHARACTER MAI CHATTAWA + (#xEC ?\u0E4C) ;; THAI CHARACTER THANTHAKHAT + (#xED ?\u0E4D) ;; THAI CHARACTER NIKHAHIT + (#xEE ?\u0E4E) ;; THAI CHARACTER YAMAKKAN + (#xEF ?\u0E4F) ;; THAI CHARACTER FONGMAN + (#xF0 ?\u0E50) ;; THAI DIGIT ZERO + (#xF1 ?\u0E51) ;; THAI DIGIT ONE + (#xF2 ?\u0E52) ;; THAI DIGIT TWO + (#xF3 ?\u0E53) ;; THAI DIGIT THREE + (#xF4 ?\u0E54) ;; THAI DIGIT FOUR + (#xF5 ?\u0E55) ;; THAI DIGIT FIVE + (#xF6 ?\u0E56) ;; THAI DIGIT SIX + (#xF7 ?\u0E57) ;; THAI DIGIT SEVEN + (#xF8 ?\u0E58) ;; THAI DIGIT EIGHT + (#xF9 ?\u0E59) ;; THAI DIGIT NINE + (#xFA ?\u0E5A) ;; THAI CHARACTER ANGKHANKHU + (#xFB ?\u0E5B));; THAI CHARACTER KHOMUT + documentation "Non-composed Thai" + aliases (iso-8859-11))) -; (make-coding-system -; 'thai-tis620 'iso2022 "Thai/TIS620" -; '(charset-g0 ascii -; charset-g1 thai-tis620 -; mnemonic "Thai" -; safe-charsets (ascii thai-tis620) -; post-read-conversion thai-post-read-conversion -; documentation "8-bit encoding for ASCII (MSB=0) and Thai TIS620 (MSB=1)")) - -; (define-coding-system-alias 'th-tis620 'thai-tis620) -; (define-coding-system-alias 'tis620 'thai-tis620) -; (define-coding-system-alias 'tis-620 'thai-tis620) +(make-coding-system + 'windows-874 'fixed-width "Microsoft's CP874" + '(mnemonic "CP874" + unicode-map + ((#x80 ?\u20AC) ;; EURO SIGN + (#x85 ?\u2026) ;; HORIZONTAL ELLIPSIS + (#x91 ?\u2018) ;; LEFT SINGLE QUOTATION MARK + (#x92 ?\u2019) ;; RIGHT SINGLE QUOTATION MARK + (#x93 ?\u201C) ;; LEFT DOUBLE QUOTATION MARK + (#x94 ?\u201D) ;; RIGHT DOUBLE QUOTATION MARK + (#x95 ?\u2022) ;; BULLET + (#x96 ?\u2013) ;; EN DASH + (#x97 ?\u2014) ;; EM DASH + (#xA0 ?\u00A0) ;; NO-BREAK SPACE + (#xA1 ?\u0E01) ;; THAI CHARACTER KO KAI + (#xA2 ?\u0E02) ;; THAI CHARACTER KHO KHAI + (#xA3 ?\u0E03) ;; THAI CHARACTER KHO KHUAT + (#xA4 ?\u0E04) ;; THAI CHARACTER KHO KHWAI + (#xA5 ?\u0E05) ;; THAI CHARACTER KHO KHON + (#xA6 ?\u0E06) ;; THAI CHARACTER KHO RAKHANG + (#xA7 ?\u0E07) ;; THAI CHARACTER NGO NGU + (#xA8 ?\u0E08) ;; THAI CHARACTER CHO CHAN + (#xA9 ?\u0E09) ;; THAI CHARACTER CHO CHING + (#xAA ?\u0E0A) ;; THAI CHARACTER CHO CHANG + (#xAB ?\u0E0B) ;; THAI CHARACTER SO SO + (#xAC ?\u0E0C) ;; THAI CHARACTER CHO CHOE + (#xAD ?\u0E0D) ;; THAI CHARACTER YO YING + (#xAE ?\u0E0E) ;; THAI CHARACTER DO CHADA + (#xAF ?\u0E0F) ;; THAI CHARACTER TO PATAK + (#xB0 ?\u0E10) ;; THAI CHARACTER THO THAN + (#xB1 ?\u0E11) ;; THAI CHARACTER THO NANGMONTHO + (#xB2 ?\u0E12) ;; THAI CHARACTER THO PHUTHAO + (#xB3 ?\u0E13) ;; THAI CHARACTER NO NEN + (#xB4 ?\u0E14) ;; THAI CHARACTER DO DEK + (#xB5 ?\u0E15) ;; THAI CHARACTER TO TAO + (#xB6 ?\u0E16) ;; THAI CHARACTER THO THUNG + (#xB7 ?\u0E17) ;; THAI CHARACTER THO THAHAN + (#xB8 ?\u0E18) ;; THAI CHARACTER THO THONG + (#xB9 ?\u0E19) ;; THAI CHARACTER NO NU + (#xBA ?\u0E1A) ;; THAI CHARACTER BO BAIMAI + (#xBB ?\u0E1B) ;; THAI CHARACTER PO PLA + (#xBC ?\u0E1C) ;; THAI CHARACTER PHO PHUNG + (#xBD ?\u0E1D) ;; THAI CHARACTER FO FA + (#xBE ?\u0E1E) ;; THAI CHARACTER PHO PHAN + (#xBF ?\u0E1F) ;; THAI CHARACTER FO FAN + (#xC0 ?\u0E20) ;; THAI CHARACTER PHO SAMPHAO + (#xC1 ?\u0E21) ;; THAI CHARACTER MO MA + (#xC2 ?\u0E22) ;; THAI CHARACTER YO YAK + (#xC3 ?\u0E23) ;; THAI CHARACTER RO RUA + (#xC4 ?\u0E24) ;; THAI CHARACTER RU + (#xC5 ?\u0E25) ;; THAI CHARACTER LO LING + (#xC6 ?\u0E26) ;; THAI CHARACTER LU + (#xC7 ?\u0E27) ;; THAI CHARACTER WO WAEN + (#xC8 ?\u0E28) ;; THAI CHARACTER SO SALA + (#xC9 ?\u0E29) ;; THAI CHARACTER SO RUSI + (#xCA ?\u0E2A) ;; THAI CHARACTER SO SUA + (#xCB ?\u0E2B) ;; THAI CHARACTER HO HIP + (#xCC ?\u0E2C) ;; THAI CHARACTER LO CHULA + (#xCD ?\u0E2D) ;; THAI CHARACTER O ANG + (#xCE ?\u0E2E) ;; THAI CHARACTER HO NOKHUK + (#xCF ?\u0E2F) ;; THAI CHARACTER PAIYANNOI + (#xD0 ?\u0E30) ;; THAI CHARACTER SARA A + (#xD1 ?\u0E31) ;; THAI CHARACTER MAI HAN-AKAT + (#xD2 ?\u0E32) ;; THAI CHARACTER SARA AA + (#xD3 ?\u0E33) ;; THAI CHARACTER SARA AM + (#xD4 ?\u0E34) ;; THAI CHARACTER SARA I + (#xD5 ?\u0E35) ;; THAI CHARACTER SARA II + (#xD6 ?\u0E36) ;; THAI CHARACTER SARA UE + (#xD7 ?\u0E37) ;; THAI CHARACTER SARA UEE + (#xD8 ?\u0E38) ;; THAI CHARACTER SARA U + (#xD9 ?\u0E39) ;; THAI CHARACTER SARA UU + (#xDA ?\u0E3A) ;; THAI CHARACTER PHINTHU + (#xDF ?\u0E3F) ;; THAI CURRENCY SYMBOL BAHT + (#xE0 ?\u0E40) ;; THAI CHARACTER SARA E + (#xE1 ?\u0E41) ;; THAI CHARACTER SARA AE + (#xE2 ?\u0E42) ;; THAI CHARACTER SARA O + (#xE3 ?\u0E43) ;; THAI CHARACTER SARA AI MAIMUAN + (#xE4 ?\u0E44) ;; THAI CHARACTER SARA AI MAIMALAI + (#xE5 ?\u0E45) ;; THAI CHARACTER LAKKHANGYAO + (#xE6 ?\u0E46) ;; THAI CHARACTER MAIYAMOK + (#xE7 ?\u0E47) ;; THAI CHARACTER MAITAIKHU + (#xE8 ?\u0E48) ;; THAI CHARACTER MAI EK + (#xE9 ?\u0E49) ;; THAI CHARACTER MAI THO + (#xEA ?\u0E4A) ;; THAI CHARACTER MAI TRI + (#xEB ?\u0E4B) ;; THAI CHARACTER MAI CHATTAWA + (#xEC ?\u0E4C) ;; THAI CHARACTER THANTHAKHAT + (#xED ?\u0E4D) ;; THAI CHARACTER NIKHAHIT + (#xEE ?\u0E4E) ;; THAI CHARACTER YAMAKKAN + (#xEF ?\u0E4F) ;; THAI CHARACTER FONGMAN + (#xF0 ?\u0E50) ;; THAI DIGIT ZERO + (#xF1 ?\u0E51) ;; THAI DIGIT ONE + (#xF2 ?\u0E52) ;; THAI DIGIT TWO + (#xF3 ?\u0E53) ;; THAI DIGIT THREE + (#xF4 ?\u0E54) ;; THAI DIGIT FOUR + (#xF5 ?\u0E55) ;; THAI DIGIT FIVE + (#xF6 ?\u0E56) ;; THAI DIGIT SIX + (#xF7 ?\u0E57) ;; THAI DIGIT SEVEN + (#xF8 ?\u0E58) ;; THAI DIGIT EIGHT + (#xF9 ?\u0E59) ;; THAI DIGIT NINE + (#xFA ?\u0E5A) ;; THAI CHARACTER ANGKHANKHU + (#xFB ?\u0E5B));; THAI CHARACTER KHOMUT + documentation "Microsoft's encoding for Thai." + aliases (cp874))) -; (set-language-info-alist -; "Thai" '((tutorial . "TUTORIAL.th") -; (charset thai-tis620) -; (coding-system thai-tis620) -; (coding-priority thai-tis620) -; (nonascii-translation . thai-tis620) -; (input-method . "thai-kesmanee") -; (unibyte-display . thai-tis620) -; (features thai-util) -; (sample-text -; . (thai-compose-string -; (copy-sequence "Thai (,T@RIRd7B(B) ,TJ0GQ1J04U1$0CQ1:(B, ,TJ0GQ1J04U10$h1P(B"))) -; (documentation . t))) - - -;; Register a function to compose Thai characters. -; (put-char-table 'thai-tis620 -; '(("\\c0\\c4\\|\\c0\\(\\c2\\|\\c3\\)\\c4?" . -; thai-composition-function)) -; composition-function-table) +(set-language-info-alist + "Thai" + '((coding-system tis-620 utf-8) + (tutorial . "TUTORIAL.th") + (tutorial-coding-system . tis-620) + (coding-priority tis-620 utf-8 iso-2022-7bit) + (sample-text . "สวัสดีครับ, สวัสดีค่ะ") + (documentation . t))) (provide 'thai) diff -r ccf7e84fe265 -r 75469840109b lisp/unicode.el --- a/lisp/unicode.el Mon Apr 04 20:34:17 2011 +0100 +++ b/lisp/unicode.el Fri Apr 08 14:44:20 2011 +0100 @@ -161,7 +161,7 @@ indian-is13194 korean-ksc5601 chinese-cns11643-1 chinese-cns11643-2 chinese-isoir165 composite ethiopic indian-1-column indian-2-column jit-ucs-charset-0 - katakana-jisx0201 lao thai-tis620 thai-xtis tibetan tibetan-1-column + katakana-jisx0201 lao thai-tis620 tibetan tibetan-1-column latin-jisx0201 chinese-cns11643-3 chinese-cns11643-4 chinese-cns11643-5 chinese-cns11643-6 chinese-cns11643-7)))))