1 #include "thai-charprop.h"
3 const gshort thai_char_type[256] = {
4 /* 0, 1, 2, 3, 4, 5, 6, 7,
5 8, 9, A, B, C, D, E, F */
8 /*00*/ _ND, _ND, _ND, _ND, _ND, _ND, _ND, _ND,
9 _ND, _ND, _ND, _ND, _ND, _ND, _ND, _ND,
10 /*10*/ _ND, _ND, _ND, _ND, _ND, _ND, _ND, _ND,
11 _ND, _ND, _ND, _ND, _ND, _ND, _ND, _ND,
13 /* Lao zone: [U+0E80..U+0EDF] */
14 /*20*/ _ND, _NC, _NC, _ND, _NC, _ND, _ND, _NC,
15 _NC, _ND, _NC, _ND, _ND, _NC, _ND, _ND,
16 /*30*/ _ND, _ND, _ND, _ND, _NC, _NC, _NC, _NC,
17 _ND, _NC, _NC, _UC, _NC, _UC, _NC, _UC,
18 /*40*/ _ND, _NC, _UC, _NC, _ND, _NC, _ND, _NC,
19 _ND, _ND, _NC, _NC, _ND, _NC, _NC, _ND,
20 /*50*/ _ND, _AV, _ND, _AM, _AV, _AV, _AV, _AV,
21 _BV, _BV, _ND, _AV, _BD, _NC, _ND, _ND,
22 /*60*/ _ND, _ND, _ND, _ND, _ND, _ND, _ND, _AD,
23 _TN, _TN, _TN, _TN, _AD, _AD, _ND, _ND,
24 /*70*/ _ND, _ND, _ND, _ND, _ND, _ND, _ND, _ND,
25 _ND, _ND, _ND, _ND, _NC, _NC, _ND, _ND,
28 /*80*/ _ND, _ND, _ND, _ND, _ND, _ND, _ND, _ND,
29 _ND, _ND, _ND, _ND, _ND, _ND, _ND, _ND,
30 /*90*/ _ND, _ND, _ND, _ND, _ND, _ND, _ND, _ND,
31 _ND, _ND, _ND, _ND, _ND, _ND, _ND, _ND,
33 /* Thai zone: [U+0E00..U+0E5F] */
34 /*A0*/ _ND, _NC, _NC, _NC, _NC, _NC, _NC, _NC,
35 _NC, _NC, _NC, _NC, _NC, _SC, _BC, _BC,
36 /*B0*/ _SC, _NC, _NC, _NC, _NC, _NC, _NC, _NC,
37 _NC, _NC, _NC, _UC, _NC, _UC, _NC, _UC,
38 /*C0*/ _NC, _NC, _NC, _NC, _ND, _NC, _ND, _NC,
39 _NC, _NC, _NC, _NC, _UC, _NC, _NC, _ND,
40 /*D0*/ _ND, _AV, _ND, _AM, _AV, _AV, _AV, _AV,
41 _BV, _BV, _BD, _ND, _ND, _ND, _ND, _ND,
42 /*E0*/ _ND, _ND, _ND, _ND, _ND, _ND, _ND, _AD,
43 _TN, _TN, _TN, _TN, _AD, _AD, _AD, _ND,
44 /*F0*/ _ND, _ND, _ND, _ND, _ND, _ND, _ND, _ND,
45 _ND, _ND, _ND, _ND, _ND, _ND, _ND, _ND,
48 const gshort thai_TAC_char_class[256] = {
49 /* 0, 1, 2, 3, 4, 5, 6, 7,
50 8, 9, A, B, C, D, E, F */
53 /*00*/ CTRL,CTRL,CTRL,CTRL,CTRL,CTRL,CTRL,CTRL,
54 CTRL,CTRL,CTRL,CTRL,CTRL,CTRL,CTRL,CTRL,
55 /*10*/ CTRL,CTRL,CTRL,CTRL,CTRL,CTRL,CTRL,CTRL,
56 CTRL,CTRL,CTRL,CTRL,CTRL,CTRL,CTRL,CTRL,
58 /* Lao zone: [U+0E80..U+0EDF] */
59 /*20*/ NON,CONS,CONS, NON,CONS, NON, NON,CONS,
60 CONS, NON,CONS, NON, NON,CONS, NON, NON,
61 /*30*/ NON, NON, NON, NON,CONS,CONS,CONS,CONS,
62 NON,CONS,CONS,CONS,CONS,CONS,CONS,CONS,
63 /*40*/ NON,CONS,CONS,CONS, NON,CONS, NON,CONS,
64 NON, NON,CONS,CONS, NON,CONS,CONS, NON,
65 /*50*/ FV1, AV2, FV1, AM, AV1, AV3, AV2, AV3,
66 BV1, BV2, NON, AV2,BCON, FV3, NON, NON,
67 /*60*/ LV, LV, LV, LV, LV, NON, NON, NON,
68 TONE,TONE,TONE,TONE, AD1, AD4, NON, NON,
69 /*70*/ NON, NON, NON, NON, NON, NON, NON, NON,
70 NON, NON, NON, NON,CONS,CONS, NON,CTRL,
73 /*80*/ CTRL,CTRL,CTRL,CTRL,CTRL,CTRL,CTRL,CTRL,
74 CTRL,CTRL,CTRL,CTRL,CTRL,CTRL,CTRL,CTRL,
75 /*90*/ CTRL,CTRL,CTRL,CTRL,CTRL,CTRL,CTRL,CTRL,
76 CTRL,CTRL,CTRL,CTRL,CTRL,CTRL,CTRL,CTRL,
78 /* Thai zone: [U+0E00..U+0E5F] */
79 /*A0*/ NON,CONS,CONS,CONS,CONS,CONS,CONS,CONS,
80 CONS,CONS,CONS,CONS,CONS,CONS,CONS,CONS,
81 /*B0*/ CONS,CONS,CONS,CONS,CONS,CONS,CONS,CONS,
82 CONS,CONS,CONS,CONS,CONS,CONS,CONS,CONS,
83 /*C0*/ CONS,CONS,CONS,CONS, FV3,CONS, FV3,CONS,
84 CONS,CONS,CONS,CONS,CONS,CONS,CONS, NON,
85 /*D0*/ FV1, AV2, FV1, AM, AV1, AV3, AV2, AV3,
86 BV1, BV2, BD, NON, NON, NON, NON, NON,
87 /*E0*/ LV, LV, LV, LV, LV, FV2, NON, AD2,
88 TONE,TONE,TONE,TONE, AD1, AD4, AD3, NON,
89 /*F0*/ NON, NON, NON, NON, NON, NON, NON, NON,
90 NON, NON, NON, NON, NON, NON, NON,CTRL,
93 const gchar thai_TAC_compose_input[20][20] = {
94 /* row: Cn-1, column: Cn */
95 /*CTRL NON CONS LV FV1 FV2 FV3 AM BV1 BV2
96 * BD TONE AD1 AD2 AD3 AD4 AV1 AV2 AV3 BCON*/
97 /*CTRL*/{'X','A','A','A','A','A','A','R','R','R',
98 'R','R','R','R','R','R','R','R','R','R'},
99 /*NON */{'X','A','A','A','S','S','A','R','R','R',
100 'R','R','R','R','R','R','R','R','R','R'},
101 /*CONS*/{'X','A','A','A','A','S','A','C','C','C',
102 'C','C','C','C','C','C','C','C','C','C'},
103 /*LV */{'X','S','A','S','S','S','S','R','R','R',
104 'R','R','R','R','R','R','R','R','R','R'},
105 /*FV1 */{'X','A','A','A','A','S','A','R','R','R',
106 'R','R','R','R','R','R','R','R','R','R'},
107 /*FV2 */{'X','A','A','A','A','S','A','R','R','R',
108 'R','R','R','R','R','R','R','R','R','R'},
109 /*FV3 */{'X','A','A','A','S','A','S','R','R','R',
110 'R','R','R','R','R','R','R','R','R','R'},
111 /*AM */{'X','A','A','A','S','S','A','R','R','R',
112 'R','R','R','R','R','R','R','R','R','R'},
113 /*BV1 */{'X','A','A','A','S','S','A','R','R','R',
114 'R','C','C','R','R','C','R','R','R','R'},
115 /*BV2 */{'X','A','A','A','S','S','A','R','R','R',
116 'R','C','R','R','R','R','R','R','R','R'},
117 /*BD */{'X','A','A','A','S','S','A','R','R','R',
118 'R','R','R','R','R','R','R','R','R','R'},
119 /*TONE*/{'X','A','A','A','A','A','A','C','R','R',
120 'R','R','R','R','R','R','R','R','R','R'},
121 /*AD1 */{'X','A','A','A','S','S','A','R','R','R',
122 'R','R','R','R','R','R','R','R','R','R'},
123 /*AD2 */{'X','A','A','A','S','S','A','R','R','R',
124 'R','R','R','R','R','R','R','R','R','R'},
125 /*AD3 */{'X','A','A','A','S','S','A','R','R','R',
126 'R','R','R','R','R','R','R','R','R','R'},
127 /*AD4 */{'X','A','A','A','S','S','A','R','R','R',
128 'R','C','R','R','R','R','R','R','R','R'},
129 /*AV1 */{'X','A','A','A','S','S','A','R','R','R',
130 'R','C','C','R','R','C','R','R','R','R'},
131 /*AV2 */{'X','A','A','A','S','S','A','R','R','R',
132 'R','C','R','R','R','R','R','R','R','R'},
133 /*AV3 */{'X','A','A','A','S','S','A','R','R','R',
134 'R','C','R','C','R','R','R','R','R','R'},
135 /*BCON*/{'X','A','A','A','A','S','A','C','C','C',
136 'R','C','R','R','R','C','C','C','C','R'},