1 ;;; thai-xtis.el --- Thai support for pre-composed font (for XTIS).
3 ;; Copyright (C) 1999 Electrotechnical Laboratory, JAPAN.
4 ;; Licensed to the Free Software Foundation.
6 ;; Author: TAKAHASHI Naoto <ntakahas@etl.go.jp>
7 ;; MORIOKA Tomohiko <tomo@etl.go.jp>
8 ;; Created: 1998-03-27 for Emacs-20.3 by TAKAHASHI Naoto
9 ;; 1999-03-29 imported and modified for XEmacs by MORIOKA Tomohiko
11 ;; Keywords: mule, multilingual, Thai, XTIS
13 ;; This file is part of XEmacs.
15 ;; XEmacs is free software; you can redistribute it and/or modify it
16 ;; under the terms of the GNU General Public License as published by
17 ;; the Free Software Foundation; either version 2, or (at your option)
20 ;; XEmacs is distributed in the hope that it will be useful, but
21 ;; WITHOUT ANY WARRANTY; without even the implied warranty of
22 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
23 ;; General Public License for more details.
25 ;; You should have received a copy of the GNU General Public License
26 ;; along with XEmacs; see the file COPYING. If not, write to the Free
27 ;; Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
32 ;; For Thai, the pre-composed character set proposed by
33 ;; Virach Sornlertlamvanich <virach@links.nectec.or.th> is supported.
37 (when (featurep 'xemacs)
38 (make-charset 'thai-xtis "Precomposed Thai (XTIS by Virach)."
46 (modify-syntax-entry 'thai-xtis "w")
48 (define-category ?T "Precomposed Thai character.")
49 (modify-category-entry 'thai-xtis ?T)
53 (defvar leading-code-private-21 #x9F)
55 (defconst thai-xtis-leading-code
56 (concat (char-to-string leading-code-private-21)
57 (char-to-string (charset-id 'thai-xtis))))
59 (define-ccl-program ccl-thai-xtis-consonant
62 ((write ,thai-xtis-leading-code)
67 (write ,thai-xtis-leading-code)
70 (write ,thai-xtis-leading-code)
74 (define-ccl-program ccl-thai-xtis-vowel-d1
77 ((write ,thai-xtis-leading-code)
82 (write ,thai-xtis-leading-code)
86 (define-ccl-program ccl-thai-xtis-vowel
89 ((write ,thai-xtis-leading-code)
92 (r1 = ((r0 - 188) << 3))
94 (write ,thai-xtis-leading-code)
98 (define-ccl-program ccl-thai-xtis-vowel-ee
101 ((write ,thai-xtis-leading-code)
106 (write ,thai-xtis-leading-code)
110 (define-ccl-program ccl-thai-xtis-tone
113 ((write ,thai-xtis-leading-code)
119 ((r1 += (r0 - ?\xe6))
123 (define-ccl-program ccl-thai-xtis-symbol
126 ((write ,thai-xtis-leading-code)
130 (write ,thai-xtis-leading-code)
134 (write ,thai-xtis-leading-code)
138 (define-ccl-program ccl-decode-thai-xtis
153 (call ccl-thai-xtis-consonant)
154 (call ccl-thai-xtis-consonant)
155 (call ccl-thai-xtis-consonant)
156 (call ccl-thai-xtis-consonant)
157 (call ccl-thai-xtis-consonant)
158 (call ccl-thai-xtis-consonant)
159 (call ccl-thai-xtis-consonant)
160 (call ccl-thai-xtis-consonant)
161 (call ccl-thai-xtis-consonant)
162 (call ccl-thai-xtis-consonant)
163 (call ccl-thai-xtis-consonant)
164 (call ccl-thai-xtis-consonant)
165 (call ccl-thai-xtis-consonant)
166 (call ccl-thai-xtis-consonant)
167 (call ccl-thai-xtis-consonant)
168 (call ccl-thai-xtis-consonant)
169 (call ccl-thai-xtis-consonant)
170 (call ccl-thai-xtis-consonant)
171 (call ccl-thai-xtis-consonant)
172 (call ccl-thai-xtis-consonant)
173 (call ccl-thai-xtis-consonant)
174 (call ccl-thai-xtis-consonant)
175 (call ccl-thai-xtis-consonant)
176 (call ccl-thai-xtis-consonant)
177 (call ccl-thai-xtis-consonant)
178 (call ccl-thai-xtis-consonant)
179 (call ccl-thai-xtis-consonant)
180 (call ccl-thai-xtis-consonant)
181 (call ccl-thai-xtis-consonant)
182 (call ccl-thai-xtis-consonant)
183 (call ccl-thai-xtis-consonant)
184 (call ccl-thai-xtis-consonant)
185 (call ccl-thai-xtis-consonant)
186 (call ccl-thai-xtis-consonant)
187 (call ccl-thai-xtis-consonant)
188 (call ccl-thai-xtis-symbol)
189 (call ccl-thai-xtis-consonant)
190 (call ccl-thai-xtis-symbol)
191 (call ccl-thai-xtis-consonant)
192 (call ccl-thai-xtis-consonant)
193 (call ccl-thai-xtis-consonant)
194 (call ccl-thai-xtis-consonant)
195 (call ccl-thai-xtis-consonant)
196 (call ccl-thai-xtis-consonant)
197 (call ccl-thai-xtis-consonant)
198 (call ccl-thai-xtis-consonant)
199 (call ccl-thai-xtis-symbol)
200 (call ccl-thai-xtis-symbol)
201 (call ccl-thai-xtis-vowel-d1)
202 (call ccl-thai-xtis-symbol)
203 (call ccl-thai-xtis-symbol)
204 (call ccl-thai-xtis-vowel)
205 (call ccl-thai-xtis-vowel)
206 (call ccl-thai-xtis-vowel)
207 (call ccl-thai-xtis-vowel)
208 (call ccl-thai-xtis-vowel)
209 (call ccl-thai-xtis-vowel)
210 (call ccl-thai-xtis-vowel)
215 (call ccl-thai-xtis-symbol)
216 (call ccl-thai-xtis-symbol)
217 (call ccl-thai-xtis-symbol)
218 (call ccl-thai-xtis-symbol)
219 (call ccl-thai-xtis-symbol)
220 (call ccl-thai-xtis-symbol)
221 (call ccl-thai-xtis-symbol)
222 (call ccl-thai-xtis-symbol)
223 (call ccl-thai-xtis-tone)
224 (call ccl-thai-xtis-tone)
225 (call ccl-thai-xtis-tone)
226 (call ccl-thai-xtis-tone)
227 (call ccl-thai-xtis-tone)
228 (call ccl-thai-xtis-tone)
229 (call ccl-thai-xtis-tone)
230 (call ccl-thai-xtis-vowel-ee)
231 (call ccl-thai-xtis-symbol)
232 (call ccl-thai-xtis-symbol)
233 (call ccl-thai-xtis-symbol)
234 (call ccl-thai-xtis-symbol)
235 (call ccl-thai-xtis-symbol)
236 (call ccl-thai-xtis-symbol)
237 (call ccl-thai-xtis-symbol)
238 (call ccl-thai-xtis-symbol)
239 (call ccl-thai-xtis-symbol)
240 (call ccl-thai-xtis-symbol)
241 (call ccl-thai-xtis-symbol)
242 (call ccl-thai-xtis-symbol)
243 (call ccl-thai-xtis-symbol)
254 (define-ccl-program ccl-encode-thai-xtis
258 (if (r0 == ,leading-code-private-21)
260 (if (r1 == ,(charset-id 'thai-xtis))
265 (r0 = ((r0 - ?\xb0) >> 3))
267 (write r0 [0 209 212 213 214 215 216 217 218 238]))
269 (write r1 [0 231 232 233 234 235 236 237]))
275 (write-read-repeat r0))))))
277 (if (featurep 'xemacs)
280 "external=tis620, internal=thai-xtis"
282 decode ,ccl-decode-thai-xtis
283 encode ,ccl-encode-thai-xtis))
285 'tis-620 4 ?T "external=tis620, internal=thai-xtis"
286 '(ccl-decode-thai-xtis . ccl-encode-thai-xtis)
287 '((safe-charsets . t)))
291 (set-language-info-alist
293 '((setup-function . setup-thai-xtis-environment)
294 (exit-function . exit-thai-xtis-environment)
296 (coding-system tis-620 iso-2022-7bit)
297 (coding-priority tis-620 iso-2022-7bit)
298 (sample-text . "
\e$(?!:
\e(B")
299 (documentation . t)))
301 ;; thai-xtis.el ends here.