Mercurial > emacs
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 |
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 | 2 |
3 ;; Copyright (C) 1995 Electrotechnical Laboratory, JAPAN. | |
4 ;; Licensed to the Free Software Foundation. | |
5 | |
6 ;; Keywords: multilingual, input method, Thai | |
7 | |
8 ;; This file is part of GNU Emacs. | |
9 | |
10 ;; GNU Emacs is free software; you can redistribute it and/or modify | |
11 ;; it under the terms of the GNU General Public License as published by | |
12 ;; the Free Software Foundation; either version 2, or (at your option) | |
13 ;; any later version. | |
14 | |
15 ;; GNU Emacs is distributed in the hope that it will be useful, | |
16 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of | |
17 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
18 ;; GNU General Public License for more details. | |
19 | |
20 ;; You should have received a copy of the GNU General Public License | |
21 ;; along with GNU Emacs; see the file COPYING. If not, write to the | |
22 ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, | |
23 ;; Boston, MA 02111-1307, USA. | |
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 | 27 ;;; Code: |
28 | |
29 (require 'quail) | |
30 (require 'thai-util) | |
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 | 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 | 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 | 72 |
73 ;; Thai Kesmanee keyboard support. | |
74 | |
75 (quail-define-package | |
76 "thai-kesmanee" "Thai" ",T!!(B>" t | |
77 "Thai Kesmanee input method with TIS620 keyboard layout | |
78 | |
79 The difference from the ordinal Thai keyboard: | |
80 ',T_(B' and ',To(B' are assigned to '\\' and '|' respectively, | |
81 ',T#(B' and ',T%(B' are assigned to '`' and '~' respectively, | |
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 | 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 | 103 |
104 | |
105 | |
106 ;; Thai Pattachote keyboard support. | |
107 | |
108 (quail-define-package | |
109 "thai-pattachote" "Thai" ",T!;(B>" t | |
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 | 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 |