annotate leim/quail/thai.el @ 40819:668787248f9b

* dired.el (dired-move-to-filename-regexp): Do not distinguish between ASCII letters and non-ASCII characters. Don't allow comma except in the form "month day, year". Don't allow space between month name and comma. Clean up the code that checks for trailing period, comma, and space. Remove now-obsolete comments, and add more commentary about Japanese dates. Always gobble up trailing spaces, instead of doing it only sometimes.
author Paul Eggert <eggert@twinsun.com>
date Wed, 07 Nov 2001 21:59:39 +0000
parents 519983161a46
children b4f5c4723877 bc5a086f9455
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
38453
519983161a46 Some fixes to follow lisp coding conventions and typo fixes.
Pavel Janík <Pavel@Janik.cz>
parents: 31431
diff changeset
1 ;;; thai.el --- Quail package for inputting Thai characters
18673
751941736224 Initial revision
Kenichi Handa <handa@m17n.org>
parents:
diff changeset
2
751941736224 Initial revision
Kenichi Handa <handa@m17n.org>
parents:
diff changeset
3 ;; Copyright (C) 1995 Electrotechnical Laboratory, JAPAN.
751941736224 Initial revision
Kenichi Handa <handa@m17n.org>
parents:
diff changeset
4 ;; Licensed to the Free Software Foundation.
751941736224 Initial revision
Kenichi Handa <handa@m17n.org>
parents:
diff changeset
5
751941736224 Initial revision
Kenichi Handa <handa@m17n.org>
parents:
diff changeset
6 ;; Keywords: multilingual, input method, Thai
751941736224 Initial revision
Kenichi Handa <handa@m17n.org>
parents:
diff changeset
7
751941736224 Initial revision
Kenichi Handa <handa@m17n.org>
parents:
diff changeset
8 ;; This file is part of GNU Emacs.
751941736224 Initial revision
Kenichi Handa <handa@m17n.org>
parents:
diff changeset
9
751941736224 Initial revision
Kenichi Handa <handa@m17n.org>
parents:
diff changeset
10 ;; GNU Emacs is free software; you can redistribute it and/or modify
751941736224 Initial revision
Kenichi Handa <handa@m17n.org>
parents:
diff changeset
11 ;; it under the terms of the GNU General Public License as published by
751941736224 Initial revision
Kenichi Handa <handa@m17n.org>
parents:
diff changeset
12 ;; the Free Software Foundation; either version 2, or (at your option)
751941736224 Initial revision
Kenichi Handa <handa@m17n.org>
parents:
diff changeset
13 ;; any later version.
751941736224 Initial revision
Kenichi Handa <handa@m17n.org>
parents:
diff changeset
14
751941736224 Initial revision
Kenichi Handa <handa@m17n.org>
parents:
diff changeset
15 ;; GNU Emacs is distributed in the hope that it will be useful,
751941736224 Initial revision
Kenichi Handa <handa@m17n.org>
parents:
diff changeset
16 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
751941736224 Initial revision
Kenichi Handa <handa@m17n.org>
parents:
diff changeset
17 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
751941736224 Initial revision
Kenichi Handa <handa@m17n.org>
parents:
diff changeset
18 ;; GNU General Public License for more details.
751941736224 Initial revision
Kenichi Handa <handa@m17n.org>
parents:
diff changeset
19
751941736224 Initial revision
Kenichi Handa <handa@m17n.org>
parents:
diff changeset
20 ;; You should have received a copy of the GNU General Public License
751941736224 Initial revision
Kenichi Handa <handa@m17n.org>
parents:
diff changeset
21 ;; along with GNU Emacs; see the file COPYING. If not, write to the
751941736224 Initial revision
Kenichi Handa <handa@m17n.org>
parents:
diff changeset
22 ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
751941736224 Initial revision
Kenichi Handa <handa@m17n.org>
parents:
diff changeset
23 ;; Boston, MA 02111-1307, USA.
751941736224 Initial revision
Kenichi Handa <handa@m17n.org>
parents:
diff changeset
24
38453
519983161a46 Some fixes to follow lisp coding conventions and typo fixes.
Pavel Janík <Pavel@Janik.cz>
parents: 31431
diff changeset
25 ;;; Commentary:
519983161a46 Some fixes to follow lisp coding conventions and typo fixes.
Pavel Janík <Pavel@Janik.cz>
parents: 31431
diff changeset
26
18673
751941736224 Initial revision
Kenichi Handa <handa@m17n.org>
parents:
diff changeset
27 ;;; Code:
751941736224 Initial revision
Kenichi Handa <handa@m17n.org>
parents:
diff changeset
28
751941736224 Initial revision
Kenichi Handa <handa@m17n.org>
parents:
diff changeset
29 (require 'quail)
751941736224 Initial revision
Kenichi Handa <handa@m17n.org>
parents:
diff changeset
30 (require 'thai-util)
751941736224 Initial revision
Kenichi Handa <handa@m17n.org>
parents:
diff changeset
31
26881
cd1cb9bf30e1 Rewritten for new composition.
Kenichi Handa <handa@m17n.org>
parents: 19722
diff changeset
32 (defun quail-thai-update-translation (control-flag)
cd1cb9bf30e1 Rewritten for new composition.
Kenichi Handa <handa@m17n.org>
parents: 19722
diff changeset
33 (if (integerp control-flag)
cd1cb9bf30e1 Rewritten for new composition.
Kenichi Handa <handa@m17n.org>
parents: 19722
diff changeset
34 ;; Non-composable character typed.
cd1cb9bf30e1 Rewritten for new composition.
Kenichi Handa <handa@m17n.org>
parents: 19722
diff changeset
35 (setq quail-current-str
cd1cb9bf30e1 Rewritten for new composition.
Kenichi Handa <handa@m17n.org>
parents: 19722
diff changeset
36 (buffer-substring (overlay-start quail-overlay)
cd1cb9bf30e1 Rewritten for new composition.
Kenichi Handa <handa@m17n.org>
parents: 19722
diff changeset
37 (overlay-end quail-overlay))
cd1cb9bf30e1 Rewritten for new composition.
Kenichi Handa <handa@m17n.org>
parents: 19722
diff changeset
38 unread-command-events
cd1cb9bf30e1 Rewritten for new composition.
Kenichi Handa <handa@m17n.org>
parents: 19722
diff changeset
39 (string-to-list
cd1cb9bf30e1 Rewritten for new composition.
Kenichi Handa <handa@m17n.org>
parents: 19722
diff changeset
40 (substring quail-current-key control-flag)))
cd1cb9bf30e1 Rewritten for new composition.
Kenichi Handa <handa@m17n.org>
parents: 19722
diff changeset
41 (setq quail-current-str
cd1cb9bf30e1 Rewritten for new composition.
Kenichi Handa <handa@m17n.org>
parents: 19722
diff changeset
42 (compose-string (quail-lookup-map-and-concat quail-current-key))))
cd1cb9bf30e1 Rewritten for new composition.
Kenichi Handa <handa@m17n.org>
parents: 19722
diff changeset
43 control-flag)
18673
751941736224 Initial revision
Kenichi Handa <handa@m17n.org>
parents:
diff changeset
44
26881
cd1cb9bf30e1 Rewritten for new composition.
Kenichi Handa <handa@m17n.org>
parents: 19722
diff changeset
45 (defun thai-generate-quail-map (translation-table)
cd1cb9bf30e1 Rewritten for new composition.
Kenichi Handa <handa@m17n.org>
parents: 19722
diff changeset
46 (let ((i 0)
cd1cb9bf30e1 Rewritten for new composition.
Kenichi Handa <handa@m17n.org>
parents: 19722
diff changeset
47 consonant vowel tone voweltone others)
cd1cb9bf30e1 Rewritten for new composition.
Kenichi Handa <handa@m17n.org>
parents: 19722
diff changeset
48 ;; Categorize Thai characters into one of above.
cd1cb9bf30e1 Rewritten for new composition.
Kenichi Handa <handa@m17n.org>
parents: 19722
diff changeset
49 (while (< i 128)
cd1cb9bf30e1 Rewritten for new composition.
Kenichi Handa <handa@m17n.org>
parents: 19722
diff changeset
50 (let ((trans (aref translation-table i))
cd1cb9bf30e1 Rewritten for new composition.
Kenichi Handa <handa@m17n.org>
parents: 19722
diff changeset
51 ptype)
cd1cb9bf30e1 Rewritten for new composition.
Kenichi Handa <handa@m17n.org>
parents: 19722
diff changeset
52 (if (eq trans 0)
cd1cb9bf30e1 Rewritten for new composition.
Kenichi Handa <handa@m17n.org>
parents: 19722
diff changeset
53 nil
cd1cb9bf30e1 Rewritten for new composition.
Kenichi Handa <handa@m17n.org>
parents: 19722
diff changeset
54 (if (> (length trans) 1)
cd1cb9bf30e1 Rewritten for new composition.
Kenichi Handa <handa@m17n.org>
parents: 19722
diff changeset
55 (setq ptype 'voweltone
31304
6776ea662537 (thai-generate-quail-map): If the length of
Kenichi Handa <handa@m17n.org>
parents: 26881
diff changeset
56 trans (vector (compose-string trans)))
26881
cd1cb9bf30e1 Rewritten for new composition.
Kenichi Handa <handa@m17n.org>
parents: 19722
diff changeset
57 (setq ptype (get-char-code-property (aref trans 0) 'phonetic-type))
cd1cb9bf30e1 Rewritten for new composition.
Kenichi Handa <handa@m17n.org>
parents: 19722
diff changeset
58 (cond ((memq ptype '(vowel-upper vowel-lower))
cd1cb9bf30e1 Rewritten for new composition.
Kenichi Handa <handa@m17n.org>
parents: 19722
diff changeset
59 (setq ptype 'vowel))
cd1cb9bf30e1 Rewritten for new composition.
Kenichi Handa <handa@m17n.org>
parents: 19722
diff changeset
60 ((not (memq ptype '(consonant tone)))
cd1cb9bf30e1 Rewritten for new composition.
Kenichi Handa <handa@m17n.org>
parents: 19722
diff changeset
61 (setq ptype 'others))))
cd1cb9bf30e1 Rewritten for new composition.
Kenichi Handa <handa@m17n.org>
parents: 19722
diff changeset
62 (set ptype (cons (cons (char-to-string i) trans)
cd1cb9bf30e1 Rewritten for new composition.
Kenichi Handa <handa@m17n.org>
parents: 19722
diff changeset
63 (symbol-value ptype)))))
cd1cb9bf30e1 Rewritten for new composition.
Kenichi Handa <handa@m17n.org>
parents: 19722
diff changeset
64 (setq i (1+ i)))
18673
751941736224 Initial revision
Kenichi Handa <handa@m17n.org>
parents:
diff changeset
65
26881
cd1cb9bf30e1 Rewritten for new composition.
Kenichi Handa <handa@m17n.org>
parents: 19722
diff changeset
66 (quail-map-from-table
cd1cb9bf30e1 Rewritten for new composition.
Kenichi Handa <handa@m17n.org>
parents: 19722
diff changeset
67 '((base-state (consonant . vt-state)
cd1cb9bf30e1 Rewritten for new composition.
Kenichi Handa <handa@m17n.org>
parents: 19722
diff changeset
68 vowel tone voweltone others)
cd1cb9bf30e1 Rewritten for new composition.
Kenichi Handa <handa@m17n.org>
parents: 19722
diff changeset
69 (vt-state (vowel . t-state)
cd1cb9bf30e1 Rewritten for new composition.
Kenichi Handa <handa@m17n.org>
parents: 19722
diff changeset
70 voweltone tone)
cd1cb9bf30e1 Rewritten for new composition.
Kenichi Handa <handa@m17n.org>
parents: 19722
diff changeset
71 (t-state tone)))))
18673
751941736224 Initial revision
Kenichi Handa <handa@m17n.org>
parents:
diff changeset
72
751941736224 Initial revision
Kenichi Handa <handa@m17n.org>
parents:
diff changeset
73 ;; Thai Kesmanee keyboard support.
751941736224 Initial revision
Kenichi Handa <handa@m17n.org>
parents:
diff changeset
74
751941736224 Initial revision
Kenichi Handa <handa@m17n.org>
parents:
diff changeset
75 (quail-define-package
751941736224 Initial revision
Kenichi Handa <handa@m17n.org>
parents:
diff changeset
76 "thai-kesmanee" "Thai" ",T!!(B>" t
751941736224 Initial revision
Kenichi Handa <handa@m17n.org>
parents:
diff changeset
77 "Thai Kesmanee input method with TIS620 keyboard layout
751941736224 Initial revision
Kenichi Handa <handa@m17n.org>
parents:
diff changeset
78
751941736224 Initial revision
Kenichi Handa <handa@m17n.org>
parents:
diff changeset
79 The difference from the ordinal Thai keyboard:
751941736224 Initial revision
Kenichi Handa <handa@m17n.org>
parents:
diff changeset
80 ',T_(B' and ',To(B' are assigned to '\\' and '|' respectively,
751941736224 Initial revision
Kenichi Handa <handa@m17n.org>
parents:
diff changeset
81 ',T#(B' and ',T%(B' are assigned to '`' and '~' respectively,
751941736224 Initial revision
Kenichi Handa <handa@m17n.org>
parents:
diff changeset
82 Don't know where to assign characters ',Tz(B' and ',T{(B'."
31431
cd529b4126c1 ("thai-kesmanee", "thai-pattachote"): Use keyboard translation.
Kenichi Handa <handa@m17n.org>
parents: 31304
diff changeset
83 nil t t t t nil nil nil 'quail-thai-update-translation nil t)
18673
751941736224 Initial revision
Kenichi Handa <handa@m17n.org>
parents:
diff changeset
84
26881
cd1cb9bf30e1 Rewritten for new composition.
Kenichi Handa <handa@m17n.org>
parents: 19722
diff changeset
85 (quail-install-map
cd1cb9bf30e1 Rewritten for new composition.
Kenichi Handa <handa@m17n.org>
parents: 19722
diff changeset
86 (thai-generate-quail-map
cd1cb9bf30e1 Rewritten for new composition.
Kenichi Handa <handa@m17n.org>
parents: 19722
diff changeset
87 [
cd1cb9bf30e1 Rewritten for new composition.
Kenichi Handa <handa@m17n.org>
parents: 19722
diff changeset
88 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ; control codes
cd1cb9bf30e1 Rewritten for new composition.
Kenichi Handa <handa@m17n.org>
parents: 19722
diff changeset
89 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ; control codes
cd1cb9bf30e1 Rewritten for new composition.
Kenichi Handa <handa@m17n.org>
parents: 19722
diff changeset
90 0 "#" ",TF(B" ",Tr(B" ",Ts(B" ",Tt(B" ",TQi(B" ",T'(B" ; SPC .. '
cd1cb9bf30e1 Rewritten for new composition.
Kenichi Handa <handa@m17n.org>
parents: 19722
diff changeset
91 ",Tv(B" ",Tw(B" ",Tu(B" ",Ty(B" ",TA(B" ",T"(B" ",Tc(B" ",T=(B" ; ( .. /
cd1cb9bf30e1 Rewritten for new composition.
Kenichi Handa <handa@m17n.org>
parents: 19722
diff changeset
92 ",T((B" ",TE(B" "/" "_" ",T@(B" ",T6(B" ",TX(B" ",TV(B" ; 0 .. 7
cd1cb9bf30e1 Rewritten for new composition.
Kenichi Handa <handa@m17n.org>
parents: 19722
diff changeset
93 ",T$(B" ",T5(B" ",T+(B" ",TG(B" ",T2(B" ",T*(B" ",TL(B" ",TF(B" ; 8 .. ?
cd1cb9bf30e1 Rewritten for new composition.
Kenichi Handa <handa@m17n.org>
parents: 19722
diff changeset
94 ",Tq(B" ",TD(B" ",TZ(B" ",T)(B" ",T/(B" ",T.(B" ",Tb(B" ",T,(B" ; @ .. G
cd1cb9bf30e1 Rewritten for new composition.
Kenichi Handa <handa@m17n.org>
parents: 19722
diff changeset
95 ",Tg(B" ",T3(B" ",Tk(B" ",TI(B" ",TH(B" ",Tn(B" ",Tl(B" ",TO(B" ; H .. O
cd1cb9bf30e1 Rewritten for new composition.
Kenichi Handa <handa@m17n.org>
parents: 19722
diff changeset
96 ",T-(B" ",Tp(B" ",T1(B" ",T&(B" ",T8(B" ",Tj(B" ",TN(B" "\"" ; P .. W
cd1cb9bf30e1 Rewritten for new composition.
Kenichi Handa <handa@m17n.org>
parents: 19722
diff changeset
97 ")" ",Tm(B" "(" ",T:(B" ",T_(B" ",TE(B" ",TY(B" ",Tx(B" ; X .. _
cd1cb9bf30e1 Rewritten for new composition.
Kenichi Handa <handa@m17n.org>
parents: 19722
diff changeset
98 ",T#(B" ",T?(B" ",TT(B" ",Ta(B" ",T!(B" ",TS(B" ",T4(B" ",T`(B" ; ` .. g
cd1cb9bf30e1 Rewritten for new composition.
Kenichi Handa <handa@m17n.org>
parents: 19722
diff changeset
99 ",Ti(B" ",TC(B" ",Th(B" ",TR(B" ",TJ(B" ",T7(B" ",TW(B" ",T9(B" ; h .. o
cd1cb9bf30e1 Rewritten for new composition.
Kenichi Handa <handa@m17n.org>
parents: 19722
diff changeset
100 ",TB(B" ",Tf(B" ",T>(B" ",TK(B" ",TP(B" ",TU(B" ",TM(B" ",Td(B" ; p .. w
cd1cb9bf30e1 Rewritten for new composition.
Kenichi Handa <handa@m17n.org>
parents: 19722
diff changeset
101 ",T;(B" ",TQ(B" ",T<(B" ",T0(B" ",To(B" "." ",T%(B" 0 ; x .. DEL
cd1cb9bf30e1 Rewritten for new composition.
Kenichi Handa <handa@m17n.org>
parents: 19722
diff changeset
102 ]))
18673
751941736224 Initial revision
Kenichi Handa <handa@m17n.org>
parents:
diff changeset
103
751941736224 Initial revision
Kenichi Handa <handa@m17n.org>
parents:
diff changeset
104
751941736224 Initial revision
Kenichi Handa <handa@m17n.org>
parents:
diff changeset
105
751941736224 Initial revision
Kenichi Handa <handa@m17n.org>
parents:
diff changeset
106 ;; Thai Pattachote keyboard support.
751941736224 Initial revision
Kenichi Handa <handa@m17n.org>
parents:
diff changeset
107
751941736224 Initial revision
Kenichi Handa <handa@m17n.org>
parents:
diff changeset
108 (quail-define-package
751941736224 Initial revision
Kenichi Handa <handa@m17n.org>
parents:
diff changeset
109 "thai-pattachote" "Thai" ",T!;(B>" t
751941736224 Initial revision
Kenichi Handa <handa@m17n.org>
parents:
diff changeset
110 "Thai Pattachote input method with TIS620 keyboard layout"
31431
cd529b4126c1 ("thai-kesmanee", "thai-pattachote"): Use keyboard translation.
Kenichi Handa <handa@m17n.org>
parents: 31304
diff changeset
111 nil t t t t nil nil nil 'quail-thai-update-translation nil t)
18673
751941736224 Initial revision
Kenichi Handa <handa@m17n.org>
parents:
diff changeset
112
26881
cd1cb9bf30e1 Rewritten for new composition.
Kenichi Handa <handa@m17n.org>
parents: 19722
diff changeset
113 (quail-install-map
cd1cb9bf30e1 Rewritten for new composition.
Kenichi Handa <handa@m17n.org>
parents: 19722
diff changeset
114 (thai-generate-quail-map
cd1cb9bf30e1 Rewritten for new composition.
Kenichi Handa <handa@m17n.org>
parents: 19722
diff changeset
115 [ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ; control codes
cd1cb9bf30e1 Rewritten for new composition.
Kenichi Handa <handa@m17n.org>
parents: 19722
diff changeset
116 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ; control codes
cd1cb9bf30e1 Rewritten for new composition.
Kenichi Handa <handa@m17n.org>
parents: 19722
diff changeset
117 0 "+" ",T1(B" "/" "," "?" "_" ",T"(B" ; SPC .. '
cd1cb9bf30e1 Rewritten for new composition.
Kenichi Handa <handa@m17n.org>
parents: 19722
diff changeset
118 "(" ")" "." "%" ",TP(B" ",Tq(B" ",T((B" ",T>(B" ; ( .. /
cd1cb9bf30e1 Rewritten for new composition.
Kenichi Handa <handa@m17n.org>
parents: 19722
diff changeset
119 ",Tp(B" "=" ",Tr(B" ",Ts(B" ",Tt(B" ",Tu(B" ",TY(B" ",Tw(B" ; 0 .. 7
cd1cb9bf30e1 Rewritten for new composition.
Kenichi Handa <handa@m17n.org>
parents: 19722
diff changeset
120 ",Tx(B" ",Ty(B" ",T&(B" ",Td(B" ",T?(B" ",Tv(B" ",T2(B" ",TL(B" ; 8 .. ?
cd1cb9bf30e1 Rewritten for new composition.
Kenichi Handa <handa@m17n.org>
parents: 19722
diff changeset
121 "\"" ",Tk(B" ",TQ(B" ",T0(B" ",TS(B" ",Tf(B" ",T3(B" ",Tl(B" ; @ .. G
cd1cb9bf30e1 Rewritten for new composition.
Kenichi Handa <handa@m17n.org>
parents: 19722
diff changeset
122 ",TW(B" ",T+(B" ",T<(B" ",T*(B" ",Tb(B" ",TN(B" ",TH(B" ",T6(B" ; H .. O
cd1cb9bf30e1 Rewritten for new composition.
Kenichi Handa <handa@m17n.org>
parents: 19722
diff changeset
123 ",T2(B" ",Tj(B" ",T-(B" ",T8(B" ",TI(B" ",T=(B" ",T@(B" ",TD(B" ; P .. W
cd1cb9bf30e1 Rewritten for new composition.
Kenichi Handa <handa@m17n.org>
parents: 19722
diff changeset
124 ",T.(B" ",TV(B" ",T.(B" ",Tc(B" ",TZ(B" ",T2(B" ",TX(B" "-" ; X .. _
cd1cb9bf30e1 Rewritten for new composition.
Kenichi Handa <handa@m17n.org>
parents: 19722
diff changeset
125 ",T#(B" ",Ti(B" ",TT(B" ",TE(B" ",T'(B" ",TB(B" ",T!(B" ",TQ(B" ; ` .. g
cd1cb9bf30e1 Rewritten for new composition.
Kenichi Handa <handa@m17n.org>
parents: 19722
diff changeset
126 ",TU(B" ",TA(B" ",TR(B" ",T9(B" ",T`(B" ",TJ(B" ",T$(B" ",TG(B" ; h .. o
cd1cb9bf30e1 Rewritten for new composition.
Kenichi Handa <handa@m17n.org>
parents: 19722
diff changeset
127 ",Ta(B" ",Tg(B" ",TM(B" ",T7(B" ",TC(B" ",T4(B" ",TK(B" ",T5(B" ; p .. w
cd1cb9bf30e1 Rewritten for new composition.
Kenichi Handa <handa@m17n.org>
parents: 19722
diff changeset
128 ",T;(B" ",Th(B" ",T:(B" ",TO(B" ",Tm(B" ",TF(B" ",T%(B" 0 ; x .. DEL
cd1cb9bf30e1 Rewritten for new composition.
Kenichi Handa <handa@m17n.org>
parents: 19722
diff changeset
129 ]))
38453
519983161a46 Some fixes to follow lisp coding conventions and typo fixes.
Pavel Janík <Pavel@Janik.cz>
parents: 31431
diff changeset
130
519983161a46 Some fixes to follow lisp coding conventions and typo fixes.
Pavel Janík <Pavel@Janik.cz>
parents: 31431
diff changeset
131 ;;; thai.el ends here