changeset 5396:75469840109b

Drop support for Thai-XTIS, which was always non-standard and never used. lisp/ChangeLog addition: 2011-04-08 Aidan Kehoe <kehoea@parhasard.net> * 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.
author Aidan Kehoe <kehoea@parhasard.net>
date Fri, 08 Apr 2011 14:44:20 +0100
parents ccf7e84fe265
children a63e666bb68a
files lisp/ChangeLog lisp/dumped-lisp.el lisp/mule/thai-util.el lisp/mule/thai-xtis.el lisp/mule/thai.el lisp/unicode.el
diffstat 6 files changed, 259 insertions(+), 647 deletions(-) [+]
line wrap: on
line diff
--- 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  <kehoea@parhasard.net>
+
+	* 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  <kehoea@parhasard.net>
 
 	* cl.el (cadr, caddr, cadddr):
--- 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"
 	   ))
--- 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
--- 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 <ntakahas@etl.go.jp>
-;;         MORIOKA Tomohiko <tomo@etl.go.jp>
-;; 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 <virach@links.nectec.or.th> 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.
--- 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) ;; <control>
+    (#x81 ?\u0081) ;; <control>
+    (#x82 ?\u0082) ;; <control>
+    (#x83 ?\u0083) ;; <control>
+    (#x84 ?\u0084) ;; <control>
+    (#x85 ?\u0085) ;; <control>
+    (#x86 ?\u0086) ;; <control>
+    (#x87 ?\u0087) ;; <control>
+    (#x88 ?\u0088) ;; <control>
+    (#x89 ?\u0089) ;; <control>
+    (#x8A ?\u008A) ;; <control>
+    (#x8B ?\u008B) ;; <control>
+    (#x8C ?\u008C) ;; <control>
+    (#x8D ?\u008D) ;; <control>
+    (#x8E ?\u008E) ;; <control>
+    (#x8F ?\u008F) ;; <control>
+    (#x90 ?\u0090) ;; <control>
+    (#x91 ?\u0091) ;; <control>
+    (#x92 ?\u0092) ;; <control>
+    (#x93 ?\u0093) ;; <control>
+    (#x94 ?\u0094) ;; <control>
+    (#x95 ?\u0095) ;; <control>
+    (#x96 ?\u0096) ;; <control>
+    (#x97 ?\u0097) ;; <control>
+    (#x98 ?\u0098) ;; <control>
+    (#x99 ?\u0099) ;; <control>
+    (#x9A ?\u009A) ;; <control>
+    (#x9B ?\u009B) ;; <control>
+    (#x9C ?\u009C) ;; <control>
+    (#x9D ?\u009D) ;; <control>
+    (#x9E ?\u009E) ;; <control>
+    (#x9F ?\u009F) ;; <control>
+    (#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)
 
--- 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)))))