U0000 is not in class cntrl.
[kopensolaris-gnu/glibc.git] / localedata / tests-mbwc / dat_iswctype.c
1 /*
2  *  TEST SUITE FOR MB/WC FUNCTIONS IN C LIBRARY
3  *
4  *       FILE:  dat_iswctype.c
5  *
6  *       ISWCTYPE:  int iswctype( wint_t wc, wctype_t charclass );
7  */
8
9 #include <errno.h>
10 #include <stdlib.h>
11 #include <wctype.h>
12 #include "tst_types.h"
13 #include "tgn_locdef.h"
14
15 /*
16  *  NOTE:
17  *   Set ret_flg = 1, when a return value is expected to be 0 (FALSE).
18  *   Set ret_flg = 0, when a return value is expected to be non-zero (TRUE).
19  *
20  *   Since the functions return *non*-zero value for TRUE, can't
21  *   compare an actual return value with an expected return value.
22  *   Set the ret_flg=0 for TRUE cases and the tst_isw*() will check
23  *   the non-zero value.
24  *
25  * { { WEOF }, { 0,0,1,0 } },
26  *                   | |
27  *                   | ret_val: an expected return value
28  *                   ret_flg: if 1, compare an actual return value with the
29  *                            ret_val; if 0, the test program checks
30  *                            the actual return value.
31  */
32
33 TST_ISWCTYPE tst_iswctype_loc [] = {
34   {
35     { Tiswctype, TST_LOC_de },
36     {
37       {  { 0x009F, "alnum"  }, { 0,0,1,0 }  },     /* CTRL     */
38       {  { 0x00A0, "alnum"  }, { 0,0,1,0 }  },     /* NB SPACE */
39       {  { 0x00A1, "alnum"  }, { 0,0,1,0 }  },     /* UD !     */
40       {  { 0x00B1, "alnum"  }, { 0,0,1,0 }  },     /* +- sign  */
41       {  { 0x00B3, "alnum"  }, { 0,0,1,0 }  },     /* SUP 3    */
42       {  { 0x00B4, "alnum"  }, { 0,0,1,0 }  },     /* ACUTE    */
43       {  { 0x00BB, "alnum"  }, { 0,0,1,0 }  },     /* >>       */
44       {  { 0x00BE, "alnum"  }, { 0,0,1,0 }  },     /* 3/4      */
45       {  { 0x00BF, "alnum"  }, { 0,0,1,0 }  },     /* UD ?     */
46       {  { 0x00C0, "alnum"  }, { 0,0,0,0 }  },     /* A Grave  */
47       {  { 0x00D6, "alnum"  }, { 0,0,0,0 }  },     /* O dia    */
48       {  { 0x00D7, "alnum"  }, { 0,0,1,0 }  },     /* multipl. */
49       {  { 0x00D8, "alnum"  }, { 0,0,0,0 }  },     /* O stroke */
50       {  { 0x00DF, "alnum"  }, { 0,0,0,0 }  },     /* small Sh */
51       {  { 0x00E0, "alnum"  }, { 0,0,0,0 }  },     /* a grave  */
52       {  { 0x00F6, "alnum"  }, { 0,0,0,0 }  },     /* o dia    */
53       {  { 0x00F7, "alnum"  }, { 0,0,1,0 }  },     /* division */
54       {  { 0x00F8, "alnum"  }, { 0,0,0,0 }  },     /* o stroke */
55       {  { 0x00FF, "alnum"  }, { 0,0,0,0 }  },     /* y dia    */
56       {  { 0x0080, "alpha"  }, { 0,0,1,0 }  },     /* CTRL     */
57       {  { 0x00A0, "alpha"  }, { 0,0,1,0 }  },     /* NB SPACE */
58       {  { 0x00A1, "alpha"  }, { 0,0,1,0 }  },     /* UD !     */
59       {  { 0x00B1, "alpha"  }, { 0,0,1,0 }  },     /* +- sign  */
60       {  { 0x00B4, "alpha"  }, { 0,0,1,0 }  },     /* ACUTE    */
61       {  { 0x00B8, "alpha"  }, { 0,0,1,0 }  },     /* CEDILLA  */
62       {  { 0x00B9, "alpha"  }, { 0,0,1,0 }  },     /* SUP 1    */
63       {  { 0x00BB, "alpha"  }, { 0,0,1,0 }  },     /* >>       */
64       {  { 0x00BE, "alpha"  }, { 0,0,1,0 }  },     /* 3/4      */
65       {  { 0x00BF, "alpha"  }, { 0,0,1,0 }  },     /* UD ?     */
66       {  { 0x00C0, "alpha"  }, { 0,0,0,0 }  },     /* A Grave  */
67       {  { 0x00D6, "alpha"  }, { 0,0,0,0 }  },     /* O dia    */
68       {  { 0x00D7, "alpha"  }, { 0,0,1,0 }  },     /* multipl. */
69       {  { 0x00D8, "alpha"  }, { 0,0,0,0 }  },     /* O stroke */
70       {  { 0x00DF, "alpha"  }, { 0,0,0,0 }  },     /* small Sh */
71       {  { 0x00E0, "alpha"  }, { 0,0,0,0 }  },     /* a grave  */
72       {  { 0x00F6, "alpha"  }, { 0,0,0,0 }  },     /* o dia    */
73       {  { 0x00F7, "alpha"  }, { 0,0,1,0 }  },     /* division */
74       {  { 0x00F8, "alpha"  }, { 0,0,0,0 }  },     /* o stroke */
75       {  { 0x00FF, "alpha"  }, { 0,0,0,0 }  },     /* y dia    */
76       {  { 0x0080, "cntrl"  }, { 0,0,0,0 }  },     /* CTRL     */
77       {  { 0x009F, "cntrl"  }, { 0,0,0,0 }  },     /* CTRL     */
78       {  { 0x00A0, "cntrl"  }, { 0,0,1,0 }  },     /* NB SPACE */
79       {  { 0x00F6, "cntrl"  }, { 0,0,1,0 }  },     /* o dia    */
80       {  { 0x00FF, "cntrl"  }, { 0,0,1,0 }  },     /* y dia    */
81       {  { 0x00B9, "digit"  }, { 0,0,1,0 }  },     /* SUP 1    */
82       {  { 0x00BE, "digit"  }, { 0,0,1,0 }  },     /* 3/4      */
83       {  { 0x009F, "graph"  }, { 0,0,1,0 }  },     /* CTRL     */
84       {  { 0x00A0, "graph"  }, { 0,0,1,0 }  },     /* NB SPACE */
85       {  { 0x00A1, "graph"  }, { 0,0,0,0 }  },     /* UD !     */
86       {  { 0x00B1, "graph"  }, { 0,0,0,0 }  },     /* +- sign  */
87       {  { 0x00B3, "graph"  }, { 0,0,0,0 }  },     /* SUP 3    */
88       {  { 0x00B4, "graph"  }, { 0,0,0,0 }  },     /* ACUTE    */
89       {  { 0x00BB, "graph"  }, { 0,0,0,0 }  },     /* >>       */
90       {  { 0x00BE, "graph"  }, { 0,0,0,0 }  },     /* 3/4      */
91       {  { 0x00C0, "graph"  }, { 0,0,0,0 }  },     /* A Grave  */
92       {  { 0x00D6, "graph"  }, { 0,0,0,0 }  },     /* O dia    */
93       {  { 0x00D7, "graph"  }, { 0,0,0,0 }  },     /* multipl. */
94       {  { 0x00D8, "graph"  }, { 0,0,0,0 }  },     /* O stroke */
95       {  { 0x00DF, "graph"  }, { 0,0,0,0 }  },     /* small Sh */
96       {  { 0x00F7, "graph"  }, { 0,0,0,0 }  },     /* division */
97       {  { 0x00F8, "graph"  }, { 0,0,0,0 }  },     /* o stroke */
98       {  { 0x00FF, "graph"  }, { 0,0,0,0 }  },     /* y dia    */
99       {  { 0x009F, "print"  }, { 0,0,1,0 }  },     /* CTRL     */
100       {  { 0x00A0, "print"  }, { 0,0,1,0 }  },     /* NB SPACE */
101       {  { 0x00A1, "print"  }, { 0,0,0,0 }  },     /* UD !     */
102       {  { 0x00B1, "print"  }, { 0,0,0,0 }  },     /* +- sign  */
103       {  { 0x00B4, "print"  }, { 0,0,0,0 }  },     /* ACUTE    */
104       {  { 0x00B8, "print"  }, { 0,0,0,0 }  },     /* CEDILLA  */
105       {  { 0x00B9, "print"  }, { 0,0,0,0 }  },     /* SUP 1    */
106       {  { 0x00BB, "print"  }, { 0,0,0,0 }  },     /* >>       */
107       {  { 0x00BE, "print"  }, { 0,0,0,0 }  },     /* 3/4      */
108       {  { 0x00C0, "print"  }, { 0,0,0,0 }  },     /* A Grave  */
109       {  { 0x00DF, "print"  }, { 0,0,0,0 }  },     /* small Sh */
110       {  { 0x00F6, "print"  }, { 0,0,0,0 }  },     /* o dia    */
111       {  { 0x00F7, "print"  }, { 0,0,0,0 }  },     /* division */
112       {  { 0x00F8, "print"  }, { 0,0,0,0 }  },     /* o stroke */
113       {  { 0x00FF, "print"  }, { 0,0,0,0 }  },     /* y dia    */
114       {  { 0x009F, "punct"  }, { 0,0,1,0 }  },     /* CTRL     */
115       {  { 0x00A0, "punct"  }, { 0,0,1,0 }  },     /* NB SPACE */
116       {  { 0x00A1, "punct"  }, { 0,0,0,0 }  },     /* UD !     */
117       {  { 0x00B0, "punct"  }, { 0,0,0,0 }  },     /* Degree   */
118       {  { 0x00B1, "punct"  }, { 0,0,0,0 }  },     /* +- sign  */
119       {  { 0x00B2, "punct"  }, { 0,0,0,0 }  },     /* SUP 2    */
120       {  { 0x00B3, "punct"  }, { 0,0,0,0 }  },     /* SUP 3    */
121       {  { 0x00B4, "punct"  }, { 0,0,0,0 }  },     /* ACUTE    */
122       {  { 0x00B8, "punct"  }, { 0,0,0,0 }  },     /* CEDILLA  */
123       {  { 0x00B9, "punct"  }, { 0,0,0,0 }  },     /* SUP 1    */
124       {  { 0x00BB, "punct"  }, { 0,0,0,0 }  },     /* >>       */
125       {  { 0x00BC, "punct"  }, { 0,0,0,0 }  },     /* 1/4      */
126       {  { 0x00BD, "punct"  }, { 0,0,0,0 }  },     /* 1/2      */
127       {  { 0x00BE, "punct"  }, { 0,0,0,0 }  },     /* 3/4      */
128       {  { 0x00BF, "punct"  }, { 0,0,0,0 }  },     /* UD ?     */
129       {  { 0x00C0, "punct"  }, { 0,0,1,0 }  },     /* A Grave  */
130       {  { 0x00D7, "punct"  }, { 0,0,0,0 }  },     /* multipl. */
131       {  { 0x00DF, "punct"  }, { 0,0,1,0 }  },     /* small Sh */
132       {  { 0x00F6, "punct"  }, { 0,0,1,0 }  },     /* o dia    */
133       {  { 0x00F7, "punct"  }, { 0,0,0,0 }  },     /* division */
134       {  { 0x00FF, "punct"  }, { 0,0,1,0 }  },     /* y dia    */
135       {  { 0x009F, "space"  }, { 0,0,1,0 }  },     /* CTRL     */
136       {  { 0x00A0, "space"  }, { 0,0,0,0 }  },     /* NB SPACE */
137       {  { 0x00A1, "space"  }, { 0,0,1,0 }  },     /* UD !     */
138       {  { 0x00B1, "space"  }, { 0,0,1,0 }  },     /* +- sign  */
139       {  { 0x00F8, "space"  }, { 0,0,1,0 }  },     /* o stroke */
140       {  { 0x00B3, "lower"  }, { 0,0,1,0 }  },     /* SUP 3    */
141       {  { 0x00B8, "lower"  }, { 0,0,1,0 }  },     /* CEDILLA  */
142       {  { 0x00BE, "lower"  }, { 0,0,1,0 }  },     /* 3/4      */
143       {  { 0x00C0, "lower"  }, { 0,0,1,0 }  },     /* A Grave  */
144       {  { 0x00D6, "lower"  }, { 0,0,1,0 }  },     /* O dia    */
145       {  { 0x00D8, "lower"  }, { 0,0,1,0 }  },     /* O stroke */
146       {  { 0x00DF, "lower"  }, { 0,0,0,0 }  },     /* small Sh */
147       {  { 0x00E0, "lower"  }, { 0,0,0,0 }  },     /* a grave  */
148       {  { 0x00F6, "lower"  }, { 0,0,0,0 }  },     /* o dia    */
149       {  { 0x00F7, "lower"  }, { 0,0,1,0 }  },     /* division */
150       {  { 0x00F8, "lower"  }, { 0,0,0,0 }  },     /* o stroke */
151       {  { 0x00FF, "lower"  }, { 0,0,0,0 }  },     /* y dia    */
152       {  { 0x00B4, "upper"  }, { 0,0,1,0 }  },     /* ACUTE    */
153       {  { 0x00B8, "upper"  }, { 0,0,1,0 }  },     /* CEDILLA  */
154       {  { 0x00B9, "upper"  }, { 0,0,1,0 }  },     /* SUP 1    */
155       {  { 0x00BE, "upper"  }, { 0,0,1,0 }  },     /* 3/4      */
156       {  { 0x00BF, "upper"  }, { 0,0,1,0 }  },     /* UD ?     */
157       {  { 0x00C0, "upper"  }, { 0,0,0,0 }  },     /* A Grave  */
158       {  { 0x00D6, "upper"  }, { 0,0,0,0 }  },     /* O dia    */
159       {  { 0x00D7, "upper"  }, { 0,0,1,0 }  },     /* multipl. */
160       {  { 0x00D8, "upper"  }, { 0,0,0,0 }  },     /* O stroke */
161       {  { 0x00DF, "upper"  }, { 0,0,1,0 }  },     /* small Sh */
162       {  { 0x00FF, "upper"  }, { 0,0,1,0 }  },     /* y dia    */
163       {  { 0x00B9, "xdigit" }, { 0,0,1,0 }  },     /* SUP 1    */
164       {  { 0x00BC, "xdigit" }, { 0,0,1,0 }  },     /* 1/4      */
165       { is_last: 1 }
166     }
167   },
168   {
169     { Tiswctype, TST_LOC_enUS },
170     {
171       {  { WEOF,   "alnum"  }, { 0,0,1,0 }  },
172       {  { 0x0000, "alnum"  }, { 0,0,1,0 }  },
173       {  { 0x001F, "alnum"  }, { 0,0,1,0 }  },
174       {  { 0x0020, "alnum"  }, { 0,0,1,0 }  },
175       {  { 0x0021, "alnum"  }, { 0,0,1,0 }  },
176       {  { 0x002F, "alnum"  }, { 0,0,1,0 }  },
177       {  { 0x0030, "alnum"  }, { 0,0,0,0 }  },
178       {  { 0x0039, "alnum"  }, { 0,0,0,0 }  },
179       {  { 0x003A, "alnum"  }, { 0,0,1,0 }  },
180       {  { 0x0040, "alnum"  }, { 0,0,1,0 }  },
181       {  { 0x0041, "alnum"  }, { 0,0,0,0 }  },
182       {  { 0x005A, "alnum"  }, { 0,0,0,0 }  },
183       {  { 0x005B, "alnum"  }, { 0,0,1,0 }  },
184       {  { 0x0060, "alnum"  }, { 0,0,1,0 }  },
185       {  { 0x0061, "alnum"  }, { 0,0,0,0 }  },
186       {  { 0x007A, "alnum"  }, { 0,0,0,0 }  },
187       {  { 0x007B, "alnum"  }, { 0,0,1,0 }  },
188       {  { 0x007E, "alnum"  }, { 0,0,1,0 }  },
189       {  { 0x007F, "alnum"  }, { 0,0,1,0 }  },
190       {  { 0x0080, "alnum"  }, { 0,0,1,0 }  },
191       {  { 0x0000, "alpha"  }, { 0,0,1,0 }  },
192       {  { 0x001F, "alpha"  }, { 0,0,1,0 }  },
193       {  { 0x0020, "alpha"  }, { 0,0,1,0 }  },
194       {  { 0x0021, "alpha"  }, { 0,0,1,0 }  },
195       {  { 0x002F, "alpha"  }, { 0,0,1,0 }  },
196       {  { 0x0030, "alpha"  }, { 0,0,1,0 }  },
197       {  { 0x0039, "alpha"  }, { 0,0,1,0 }  },
198       {  { 0x003A, "alpha"  }, { 0,0,1,0 }  },
199       {  { 0x0040, "alpha"  }, { 0,0,1,0 }  },
200       {  { 0x0041, "alpha"  }, { 0,0,0,0 }  },
201       {  { 0x005A, "alpha"  }, { 0,0,0,0 }  },
202       {  { 0x005B, "alpha"  }, { 0,0,1,0 }  },
203       {  { 0x0060, "alpha"  }, { 0,0,1,0 }  },
204       {  { 0x0061, "alpha"  }, { 0,0,0,0 }  },
205       {  { 0x007A, "alpha"  }, { 0,0,0,0 }  },
206       {  { 0x007B, "alpha"  }, { 0,0,1,0 }  },
207       {  { 0x007E, "alpha"  }, { 0,0,1,0 }  },
208       {  { 0x007F, "alpha"  }, { 0,0,1,0 }  },
209       {  { 0x0080, "alpha"  }, { 0,0,1,0 }  },
210       {  { 0x0009, "blank"  }, { 0,0,0,0 }  },
211       {  { 0x000B, "blank"  }, { 0,0,1,0 }  },
212       {  { 0x0020, "blank"  }, { 0,0,0,0 }  },
213 #ifdef SHOJI_IS_RIGHT
214       {  { 0x0000, "cntrl"  }, { 0,0,0,0 }  },
215 #else
216       /* XXX U0000 has no properties at all.  */
217       {  { 0x0000, "cntrl"  }, { 0,0,1,0 }  },
218 #endif
219       {  { 0x001F, "cntrl"  }, { 0,0,0,0 }  },
220       {  { 0x0020, "cntrl"  }, { 0,0,1,0 }  },
221       {  { 0x0021, "cntrl"  }, { 0,0,1,0 }  },
222       {  { 0x002F, "cntrl"  }, { 0,0,1,0 }  },
223       {  { 0x0030, "cntrl"  }, { 0,0,1,0 }  },
224       {  { 0x0039, "cntrl"  }, { 0,0,1,0 }  },
225       {  { 0x003A, "cntrl"  }, { 0,0,1,0 }  },
226       {  { 0x0040, "cntrl"  }, { 0,0,1,0 }  },
227       {  { 0x0041, "cntrl"  }, { 0,0,1,0 }  },
228       {  { 0x005A, "cntrl"  }, { 0,0,1,0 }  },
229       {  { 0x005B, "cntrl"  }, { 0,0,1,0 }  },
230       {  { 0x0060, "cntrl"  }, { 0,0,1,0 }  },
231       {  { 0x0061, "cntrl"  }, { 0,0,1,0 }  },
232       {  { 0x007A, "cntrl"  }, { 0,0,1,0 }  },
233       {  { 0x007B, "cntrl"  }, { 0,0,1,0 }  },
234       {  { 0x007E, "cntrl"  }, { 0,0,1,0 }  },
235       {  { 0x007F, "cntrl"  }, { 0,0,0,0 }  },
236       {  { 0x0080, "cntrl"  }, { 0,0,0,0 }  },
237       {  { 0x0000, "digit"  }, { 0,0,1,0 }  },
238       {  { 0x001F, "digit"  }, { 0,0,1,0 }  },
239       {  { 0x0020, "digit"  }, { 0,0,1,0 }  },
240       {  { 0x0021, "digit"  }, { 0,0,1,0 }  },
241       {  { 0x002F, "digit"  }, { 0,0,1,0 }  },
242       {  { 0x0030, "digit"  }, { 0,0,0,0 }  },
243       {  { 0x0039, "digit"  }, { 0,0,0,0 }  },
244       {  { 0x003A, "digit"  }, { 0,0,1,0 }  },
245       {  { 0x0040, "digit"  }, { 0,0,1,0 }  },
246       {  { 0x0041, "digit"  }, { 0,0,1,0 }  },
247       {  { 0x005A, "digit"  }, { 0,0,1,0 }  },
248       {  { 0x005B, "digit"  }, { 0,0,1,0 }  },
249       {  { 0x0060, "digit"  }, { 0,0,1,0 }  },
250       {  { 0x0061, "digit"  }, { 0,0,1,0 }  },
251       {  { 0x007A, "digit"  }, { 0,0,1,0 }  },
252       {  { 0x007B, "digit"  }, { 0,0,1,0 }  },
253       {  { 0x007E, "digit"  }, { 0,0,1,0 }  },
254       {  { 0x007F, "digit"  }, { 0,0,1,0 }  },
255       {  { 0x0080, "digit"  }, { 0,0,1,0 }  },
256       {  { 0x0000, "graph"  }, { 0,0,1,0 }  },
257       {  { 0x001F, "graph"  }, { 0,0,1,0 }  },
258       {  { 0x0020, "graph"  }, { 0,0,1,0 }  },
259       {  { 0x0021, "graph"  }, { 0,0,0,0 }  },
260       {  { 0x002F, "graph"  }, { 0,0,0,0 }  },
261       {  { 0x0030, "graph"  }, { 0,0,0,0 }  },
262       {  { 0x0039, "graph"  }, { 0,0,0,0 }  },
263       {  { 0x003A, "graph"  }, { 0,0,0,0 }  },
264       {  { 0x0040, "graph"  }, { 0,0,0,0 }  },
265       {  { 0x0041, "graph"  }, { 0,0,0,0 }  },
266       {  { 0x005A, "graph"  }, { 0,0,0,0 }  },
267       {  { 0x005B, "graph"  }, { 0,0,0,0 }  },
268       {  { 0x0060, "graph"  }, { 0,0,0,0 }  },
269       {  { 0x0061, "graph"  }, { 0,0,0,0 }  },
270       {  { 0x007A, "graph"  }, { 0,0,0,0 }  },
271       {  { 0x007B, "graph"  }, { 0,0,0,0 }  },
272       {  { 0x007E, "graph"  }, { 0,0,0,0 }  },
273       {  { 0x007F, "graph"  }, { 0,0,1,0 }  },
274       {  { 0x0080, "graph"  }, { 0,0,1,0 }  },
275       {  { 0x0000, "print"  }, { 0,0,1,0 }  },
276       {  { 0x001F, "print"  }, { 0,0,1,0 }  },
277       {  { 0x0020, "print"  }, { 0,0,0,0 }  },
278       {  { 0x0021, "print"  }, { 0,0,0,0 }  },
279       {  { 0x002F, "print"  }, { 0,0,0,0 }  },
280       {  { 0x0030, "print"  }, { 0,0,0,0 }  },
281       {  { 0x0039, "print"  }, { 0,0,0,0 }  },
282       {  { 0x003A, "print"  }, { 0,0,0,0 }  },
283       {  { 0x0040, "print"  }, { 0,0,0,0 }  },
284       {  { 0x0041, "print"  }, { 0,0,0,0 }  },
285       {  { 0x005A, "print"  }, { 0,0,0,0 }  },
286       {  { 0x005B, "print"  }, { 0,0,0,0 }  },
287       {  { 0x0060, "print"  }, { 0,0,0,0 }  },
288       {  { 0x0061, "print"  }, { 0,0,0,0 }  },
289       {  { 0x007A, "print"  }, { 0,0,0,0 }  },
290       {  { 0x007B, "print"  }, { 0,0,0,0 }  },
291       {  { 0x007E, "print"  }, { 0,0,0,0 }  },
292       {  { 0x007F, "print"  }, { 0,0,1,0 }  },
293       {  { 0x0080, "print"  }, { 0,0,1,0 }  },
294       {  { 0x0000, "punct"  }, { 0,0,1,0 }  },
295       {  { 0x001F, "punct"  }, { 0,0,1,0 }  },
296       {  { 0x0020, "punct"  }, { 0,0,1,0 }  },
297       {  { 0x0021, "punct"  }, { 0,0,0,0 }  },
298       {  { 0x002F, "punct"  }, { 0,0,0,0 }  },
299       {  { 0x0030, "punct"  }, { 0,0,1,0 }  },
300       {  { 0x0039, "punct"  }, { 0,0,1,0 }  },
301       {  { 0x003A, "punct"  }, { 0,0,0,0 }  },
302       {  { 0x0040, "punct"  }, { 0,0,0,0 }  },
303       {  { 0x0041, "punct"  }, { 0,0,1,0 }  },
304       {  { 0x005A, "punct"  }, { 0,0,1,0 }  },
305       {  { 0x005B, "punct"  }, { 0,0,0,0 }  },
306       {  { 0x0060, "punct"  }, { 0,0,0,0 }  },
307       {  { 0x0061, "punct"  }, { 0,0,1,0 }  },
308       {  { 0x007A, "punct"  }, { 0,0,1,0 }  },
309       {  { 0x007B, "punct"  }, { 0,0,0,0 }  },
310       {  { 0x007E, "punct"  }, { 0,0,0,0 }  },
311       {  { 0x007F, "punct"  }, { 0,0,1,0 }  },
312       {  { 0x0080, "punct"  }, { 0,0,1,0 }  },
313       {  { 0x0000, "space"  }, { 0,0,1,0 }  },
314       {  { 0x001F, "space"  }, { 0,0,1,0 }  },
315       {  { 0x0020, "space"  }, { 0,0,0,0 }  },
316       {  { 0x0021, "space"  }, { 0,0,1,0 }  },
317       {  { 0x002F, "space"  }, { 0,0,1,0 }  },
318       {  { 0x007E, "space"  }, { 0,0,1,0 }  },
319       {  { 0x007F, "space"  }, { 0,0,1,0 }  },
320       {  { 0x0080, "space"  }, { 0,0,1,0 }  },
321       {  { 0x0000, "lower"  }, { 0,0,1,0 }  },
322       {  { 0x001F, "lower"  }, { 0,0,1,0 }  },
323       {  { 0x0020, "lower"  }, { 0,0,1,0 }  },
324       {  { 0x0021, "lower"  }, { 0,0,1,0 }  },
325       {  { 0x002F, "lower"  }, { 0,0,1,0 }  },
326       {  { 0x0030, "lower"  }, { 0,0,1,0 }  },
327       {  { 0x0039, "lower"  }, { 0,0,1,0 }  },
328       {  { 0x003A, "lower"  }, { 0,0,1,0 }  },
329       {  { 0x0040, "lower"  }, { 0,0,1,0 }  },
330       {  { 0x0041, "lower"  }, { 0,0,1,0 }  },
331       {  { 0x005A, "lower"  }, { 0,0,1,0 }  },
332       {  { 0x005B, "lower"  }, { 0,0,1,0 }  },
333       {  { 0x0060, "lower"  }, { 0,0,1,0 }  },
334       {  { 0x0061, "lower"  }, { 0,0,0,0 }  },
335       {  { 0x007A, "lower"  }, { 0,0,0,0 }  },
336       {  { 0x007B, "lower"  }, { 0,0,1,0 }  },
337       {  { 0x007E, "lower"  }, { 0,0,1,0 }  },
338       {  { 0x007F, "lower"  }, { 0,0,1,0 }  },
339       {  { 0x0080, "lower"  }, { 0,0,1,0 }  },
340       {  { 0x0000, "upper"  }, { 0,0,1,0 }  },
341       {  { 0x001F, "upper"  }, { 0,0,1,0 }  },
342       {  { 0x0020, "upper"  }, { 0,0,1,0 }  },
343       {  { 0x0021, "upper"  }, { 0,0,1,0 }  },
344       {  { 0x002F, "upper"  }, { 0,0,1,0 }  },
345       {  { 0x0030, "upper"  }, { 0,0,1,0 }  },
346       {  { 0x0039, "upper"  }, { 0,0,1,0 }  },
347       {  { 0x003A, "upper"  }, { 0,0,1,0 }  },
348       {  { 0x0040, "upper"  }, { 0,0,1,0 }  },
349       {  { 0x0041, "upper"  }, { 0,0,0,0 }  },
350       {  { 0x005A, "upper"  }, { 0,0,0,0 }  },
351       {  { 0x005B, "upper"  }, { 0,0,1,0 }  },
352       {  { 0x0060, "upper"  }, { 0,0,1,0 }  },
353       {  { 0x0061, "upper"  }, { 0,0,1,0 }  },
354       {  { 0x007A, "upper"  }, { 0,0,1,0 }  },
355       {  { 0x007B, "upper"  }, { 0,0,1,0 }  },
356       {  { 0x007E, "upper"  }, { 0,0,1,0 }  },
357       {  { 0x007F, "upper"  }, { 0,0,1,0 }  },
358       {  { 0x0080, "upper"  }, { 0,0,1,0 }  },
359       {  { 0x0000, "xdigit" }, { 0,0,1,0 }  },
360       {  { 0x001F, "xdigit" }, { 0,0,1,0 }  },
361       {  { 0x0020, "xdigit" }, { 0,0,1,0 }  },
362       {  { 0x0021, "xdigit" }, { 0,0,1,0 }  },
363       {  { 0x002F, "xdigit" }, { 0,0,1,0 }  },
364       {  { 0x0030, "xdigit" }, { 0,0,0,0 }  },
365       {  { 0x0039, "xdigit" }, { 0,0,0,0 }  },
366       {  { 0x003A, "xdigit" }, { 0,0,1,0 }  },
367       {  { 0x0040, "xdigit" }, { 0,0,1,0 }  },
368       {  { 0x0041, "xdigit" }, { 0,0,0,0 }  },
369       {  { 0x005A, "xdigit" }, { 0,0,1,0 }  },
370       {  { 0x005B, "xdigit" }, { 0,0,1,0 }  },
371       {  { 0x0060, "xdigit" }, { 0,0,1,0 }  },
372       {  { 0x0061, "xdigit" }, { 0,0,0,0 }  },
373       {  { 0x007A, "xdigit" }, { 0,0,1,0 }  },
374       {  { 0x007B, "xdigit" }, { 0,0,1,0 }  },
375       {  { 0x007E, "xdigit" }, { 0,0,1,0 }  },
376       {  { 0x007F, "xdigit" }, { 0,0,1,0 }  },
377       {  { 0x0080, "xdigit" }, { 0,0,1,0 }  },
378       {  { 0x0061, "xxxxxx" }, { 0,0,1,0 }  },
379       { is_last: 1 }
380     }
381   },
382   {
383     { Tiswctype, TST_LOC_eucJP },
384     {
385       {  { 0x3029, "alnum"  }, { 0,0,1,0 }  },     /* Hangzhou NUM9      */
386       {  { 0xFE4F, "alnum"  }, { 0,0,1,0 }  },     /* CJK UNI.IDEO.      */
387       {  { 0xFF19, "alnum"  }, { 0,0,0,0 }  },     /* FULL 9             */
388       {  { 0xFF20, "alnum"  }, { 0,0,1,0 }  },     /* FULL @             */
389       {  { 0xFF3A, "alnum"  }, { 0,0,0,0 }  },     /* FULL Z             */
390       {  { 0xFF40, "alnum"  }, { 0,0,1,0 }  },     /* FULL GRAVE ACC.    */
391       {  { 0xFF5A, "alnum"  }, { 0,0,0,0 }  },     /* FULL z             */
392       {  { 0xFF71, "alnum"  }, { 0,0,1,0 }  },     /* HALF KATA A        */
393       {  { 0x3029, "alpha"  }, { 0,0,1,0 }  },     /* Hangzhou NUM9      */
394       {  { 0xFE4F, "alpha"  }, { 0,0,1,0 }  },     /* CJK UNI.IDEO.      */
395       {  { 0xFF19, "alpha"  }, { 0,0,1,0 }  },     /* FULL 9             */
396       {  { 0xFF20, "alpha"  }, { 0,0,1,0 }  },     /* FULL @             */
397       {  { 0xFF3A, "alpha"  }, { 0,0,0,0 }  },     /* FULL Z             */
398       {  { 0xFF40, "alpha"  }, { 0,0,1,0 }  },     /* FULL GRAVE ACC.    */
399       {  { 0xFF5A, "alpha"  }, { 0,0,0,0 }  },     /* FULL z             */
400       {  { 0xFF71, "alpha"  }, { 0,0,1,0 }  },     /* HALF KATA A        */
401       {  { 0x0080, "cntrl"  }, { 0,0,0,0 }  },     /* CNTRL              */
402       {  { 0x3000, "cntrl"  }, { 0,0,1,0 }  },     /* IDEO. SPACE        */
403       {  { 0x3029, "digit"  }, { 0,0,1,0 }  },     /* Hangzhou NUM9      */
404       {  { 0x32CB, "digit"  }, { 0,0,1,0 }  },     /* IDEO.TEL.SYM.DEC12 */
405       /* 21: */
406       {  { 0x33FE, "digit"  }, { 0,0,1,0 }  },     /* CJK IDEO.TEL.31th  */
407       {  { 0xFF19, "digit"  }, { 0,0,0,0 }  },     /* FULL 9             */
408       {  { 0x3000, "graph"  }, { 0,0,1,0 }  },     /* IDEO. SPACE        */
409       {  { 0x3020, "graph"  }, { 0,0,1,0 }  },     /* POSTAL MARK FACE   */
410       {  { 0x3029, "graph"  }, { 0,0,1,0 }  },     /* Hangzhou NUM9      */
411       {  { 0x302F, "graph"  }, { 0,0,1,0 }  },     /* Diacritics(Hangul) */
412       {  { 0x3037, "graph"  }, { 0,0,1,0 }  },     /* Separator Symbol   */
413       {  { 0x303F, "graph"  }, { 0,0,1,0 }  },     /* IDEO. HALF SPACE   */
414       /* 29: */
415       {  { 0x3041, "graph"  }, { 0,0,0,0 }  },     /* HIRAGANA a         */
416       /* Non jis: */
417       {  { 0x3094, "graph"  }, { 0,0,1,0 }  },     /* HIRAGANA u"        */
418       /* Non jis: */
419       {  { 0x3099, "graph"  }, { 0,0,1,0 }  },     /* SOUND MARK         */
420       {  { 0x309E, "graph"  }, { 0,0,0,0 }  },     /* ITERATION MARK     */
421       /* 33: */
422       {  { 0x30A1, "graph"  }, { 0,0,0,0 }  },     /* KATAKANA a         */
423       /* Non jis: */
424       {  { 0x30FA, "graph"  }, { 0,0,1,0 }  },     /* KATAKANA wo"       */
425       {  { 0x30FB, "graph"  }, { 0,0,0,0 }  },     /* KATAKANA MID.DOT   */
426       {  { 0x30FE, "graph"  }, { 0,0,0,0 }  },     /* KATAKANA ITERATION */
427       {  { 0x3191, "graph"  }, { 0,0,1,0 }  },     /* KANBUN REV.MARK    */
428       {  { 0x3243, "graph"  }, { 0,0,1,0 }  },     /* IDEO. MARK (reach) */
429       {  { 0x32CB, "graph"  }, { 0,0,1,0 }  },     /* IDEO.TEL.SYM.DEC12 */
430       {  { 0x32FE, "graph"  }, { 0,0,1,0 }  },     /* MARU KATAKANA wo   */
431       {  { 0x33FE, "graph"  }, { 0,0,1,0 }  },     /* CJK IDEO.TEL.31th  */
432       {  { 0x4E00, "graph"  }, { 0,0,0,0 }  },     /* CJK UNI.IDEO.      */
433       {  { 0x4E05, "graph"  }, { 0,0,0,0 }  },     /* CJK UNI.IDEO.      */
434       {  { 0x4E06, "graph"  }, { 0,0,1,0 }  },     /* CJK UNI.IDEO.NON-J */
435       {  { 0x4E07, "graph"  }, { 0,0,0,0 }  },     /* CJK UNI.IDEO.      */
436       {  { 0x4FFF, "graph"  }, { 0,0,0,0 }  },     /* CJK UNI.IDEO.      */
437       {  { 0x9000, "graph"  }, { 0,0,0,0 }  },     /* CJK UNI.IDEO.      */
438       {  { 0x9006, "graph"  }, { 0,0,0,0 }  },     /* CJK UNI.IDEO.      */
439       {  { 0x9007, "graph"  }, { 0,0,1,0 }  },     /* CJK UNI.IDEO.NON-J */
440       {  { 0x9FA4, "graph"  }, { 0,0,1,0 }  },     /* CJK UNI.IDEO.NON-J */
441       /* 51 */
442       {  { 0x9FA5, "graph"  }, { 0,0,0,0 }  },     /* CJK UNI.IDEO.      */
443       /* Non jis: */
444       {  { 0xFE4F, "graph"  }, { 0,0,1,0 }  },     /* CJK UNI.IDEO.      */
445       {  { 0xFF0F, "graph"  }, { 0,0,0,0 }  },     /* FULL SLASH         */
446       {  { 0xFF19, "graph"  }, { 0,0,0,0 }  },     /* FULL 9             */
447       {  { 0xFF20, "graph"  }, { 0,0,0,0 }  },     /* FULL @             */
448       {  { 0xFF3A, "graph"  }, { 0,0,0,0 }  },     /* FULL Z             */
449       {  { 0xFF40, "graph"  }, { 0,0,0,0 }  },     /* FULL GRAVE ACC.    */
450       {  { 0xFF5A, "graph"  }, { 0,0,0,0 }  },     /* FULL z             */
451       {  { 0xFF5E, "graph"  }, { 0,0,0,0 }  },     /* FULL ~ (tilde)     */
452       {  { 0xFF61, "graph"  }, { 0,0,0,0 }  },     /* HALF IDEO.STOP. .  */
453       {  { 0xFF65, "graph"  }, { 0,0,0,0 }  },     /* HALF KATA MID.DOT  */
454       {  { 0xFF66, "graph"  }, { 0,0,0,0 }  },     /* HALF KATA WO       */
455       {  { 0xFF6F, "graph"  }, { 0,0,0,0 }  },     /* HALF KATA tu       */
456       {  { 0xFF70, "graph"  }, { 0,0,0,0 }  },     /* HALF KATA PL -     */
457       {  { 0xFF71, "graph"  }, { 0,0,0,0 }  },     /* HALF KATA A        */
458       {  { 0xFF9E, "graph"  }, { 0,0,0,0 }  },     /* HALF KATA MI       */
459       {  { 0x3000, "print"  }, { 0,0,0,0 }  },     /* IDEO. SPACE        */
460       {  { 0x3020, "print"  }, { 0,0,1,0 }  },     /* POSTAL MARK FACE   */
461       {  { 0x3029, "print"  }, { 0,0,1,0 }  },     /* Hangzhou NUM9      */
462       {  { 0x302F, "print"  }, { 0,0,1,0 }  },     /* Diacritics(Hangul) */
463       {  { 0x3037, "print"  }, { 0,0,1,0 }  },     /* Separator Symbol   */
464       {  { 0x4E00, "print"  }, { 0,0,0,0 }  },     /* CJK UNI.IDEO.      */
465       {  { 0x4E05, "print"  }, { 0,0,0,0 }  },     /* CJK UNI.IDEO.      */
466       {  { 0x4E06, "print"  }, { 0,0,1,0 }  },     /* CJK UNI.IDEO.NON-J */
467       {  { 0x4E07, "print"  }, { 0,0,0,0 }  },     /* CJK UNI.IDEO.      */
468       {  { 0x4FFF, "print"  }, { 0,0,0,0 }  },     /* CJK UNI.IDEO.      */
469       {  { 0x9000, "print"  }, { 0,0,0,0 }  },     /* CJK UNI.IDEO.      */
470       {  { 0x9006, "print"  }, { 0,0,0,0 }  },     /* CJK UNI.IDEO.      */
471       {  { 0x9007, "print"  }, { 0,0,1,0 }  },     /* CJK UNI.IDEO.NON-J */
472       {  { 0x9FA4, "print"  }, { 0,0,1,0 }  },     /* CJK UNI.IDEO.NON-J */
473       /* 81: */
474       {  { 0x9FA5, "print"  }, { 0,0,0,0 }  },     /* CJK UNI.IDEO.      */
475       /* Non jis: */
476       {  { 0xFE4F, "print"  }, { 0,0,1,0 }  },     /* CJK UNI.IDEO.      */
477       {  { 0x3000, "punct"  }, { 0,0,1,0 }  },     /* IDEO. SPACE        */
478       {  { 0x3020, "punct"  }, { 0,0,1,0 }  },     /* POSTAL MARK FACE   */
479       {  { 0x302F, "punct"  }, { 0,0,1,0 }  },     /* Diacritics(Hangul) */
480       {  { 0x3037, "punct"  }, { 0,0,1,0 }  },     /* FEED Separator     */
481       {  { 0x303F, "punct"  }, { 0,0,1,0 }  },     /* IDEO. HALF SPACE   */
482       {  { 0x3041, "punct"  }, { 0,0,1,0 }  },     /* HIRAGANA a         */
483       {  { 0x3094, "punct"  }, { 0,0,1,0 }  },     /* HIRAGANA u"        */
484       /* 90: */
485       {  { 0x3099, "punct"  }, { 0,0,1,0 }  },     /* SOUND MARK         */
486       {  { 0x309E, "punct"  }, { 0,0,1,0 }  },     /* ITERATION MARK     */
487       {  { 0x30A1, "punct"  }, { 0,0,1,0 }  },     /* KATAKANA a         */
488       {  { 0x30FA, "punct"  }, { 0,0,1,0 }  },     /* KATAKANA wo"       */
489       {  { 0x30FB, "punct"  }, { 0,0,0,0 }  },     /* KATAKANA MID.DOT   */
490       /* 95: */
491       {  { 0x30FE, "punct"  }, { 0,0,1,0 }  },     /* KATAKANA ITERATION */
492       {  { 0x3191, "punct"  }, { 0,0,1,0 }  },     /* KANBUN REV.MARK    */
493       {  { 0x3243, "punct"  }, { 0,0,1,0 }  },     /* IDEO. MARK (reach) */
494       {  { 0x32CB, "punct"  }, { 0,0,1,0 }  },     /* IDEO.TEL.SYM.DEC12 */
495       {  { 0x32FE, "punct"  }, { 0,0,1,0 }  },     /* MARU KATAKANA wo   */
496       {  { 0x33FE, "punct"  }, { 0,0,1,0 }  },     /* CJK IDEO.TEL.31th  */
497       {  { 0x9007, "punct"  }, { 0,0,1,0 }  },     /* CJK UNI.IDEO.NON-J */
498       {  { 0x9FA4, "punct"  }, { 0,0,1,0 }  },     /* CJK UNI.IDEO.NON-J */
499       {  { 0x9FA5, "punct"  }, { 0,0,1,0 }  },     /* CJK UNI.IDEO.      */
500       {  { 0xFF0F, "punct"  }, { 0,0,0,0 }  },     /* FULL SLASH         */
501       /* 105: */
502       {  { 0xFF19, "punct"  }, { 0,0,1,0 }  },     /* FULL 9             */
503       {  { 0xFF20, "punct"  }, { 0,0,0,0 }  },     /* FULL @             */
504       {  { 0xFF3A, "punct"  }, { 0,0,1,0 }  },     /* FULL Z             */
505       {  { 0xFF40, "punct"  }, { 0,0,0,0 }  },     /* FULL GRAVE ACC.    */
506       {  { 0xFF5A, "punct"  }, { 0,0,1,0 }  },     /* FULL z             */
507       {  { 0xFF5E, "punct"  }, { 0,0,0,0 }  },     /* FULL ~ (tilde)     */
508       {  { 0xFF61, "punct"  }, { 0,0,0,0 }  },     /* HALF IDEO.STOP. .  */
509       {  { 0xFF65, "punct"  }, { 0,0,0,0 }  },     /* HALF KATA MID.DOT  */
510       {  { 0xFF70, "punct"  }, { 0,0,1,0 }  },     /* HALF KATA PL -     */
511       {  { 0xFF9E, "punct"  }, { 0,0,1,0 }  },     /* HALF KATA MI       */
512       /* 115: */
513       {  { 0x3000, "space"  }, { 0,0,0,0 }  },     /* IDEO. SPACE        */
514       {  { 0x303F, "space"  }, { 0,0,1,0 }  },     /* IDEO. HALF SPACE   */
515       {  { 0x3041, "lower"  }, { 0,0,1,0 }  },     /* HIRAGANA a         */
516       {  { 0x3094, "lower"  }, { 0,0,1,0 }  },     /* HIRAGANA u"        */
517       {  { 0x30A1, "lower"  }, { 0,0,1,0 }  },     /* KATAKANA a         */
518       {  { 0x30FA, "lower"  }, { 0,0,1,0 }  },     /* KATAKANA wo"       */
519       {  { 0xFF66, "lower"  }, { 0,0,1,0 }  },     /* HALF KATA WO       */
520       {  { 0xFF6F, "lower"  }, { 0,0,1,0 }  },     /* HALF KATA tu       */
521       {  { 0xFF70, "lower"  }, { 0,0,1,0 }  },     /* HALF KATA PL -     */
522       /* 124: */
523       {  { 0xFF71, "lower"  }, { 0,0,1,0 }  },     /* HALF KATA A        */
524       {  { 0xFF9E, "lower"  }, { 0,0,1,0 }  },     /* HALF KATA MI       */
525       {  { 0xFF71, "upper"  }, { 0,0,1,0 }  },     /* HALF KATA A        */
526       {  { 0xFF19, "xdigit" }, { 0,0,1,0 }  },     /* FULL 9             */
527       {  { 0x3000, "jspace" }, { 0,0,0,0 }  },     /* IDEO. SPACE        */
528       /* Non jis? */
529       {  { 0x303F, "jspace" }, { 0,0,1,0 }  },     /* IDEO.HALF SPACE    */
530       {  { 0xFF19, "jdigit" }, { 0,0,0,0 }  },     /* FULL 9             */
531       {  { 0x3041, "jhira"  }, { 0,0,0,0 }  },     /* HIRAGANA a         */
532       {  { 0x3094, "jhira"  }, { 0,0,1,0 }  },     /* HIRAGANA u"        */
533       {  { 0x30A1, "jkata"  }, { 0,0,0,0 }  },     /* KATAKANA a         */
534       /* Non jis: */
535       {  { 0x30FA, "jkata"  }, { 0,0,1,0 }  },     /* KATAKANA wo"       */
536       {  { 0xFF66, "jkata"  }, { 0,0,0,0 }  },     /* HALF KATA WO       */
537       {  { 0xFF6F, "jkata"  }, { 0,0,0,0 }  },     /* HALF KATA tu       */
538       {  { 0x4E05, "jkanji" }, { 0,0,0,0 }  },     /* CJK UNI.IDEO.      */
539 #ifdef SHOJI_IS_RIGHT
540       /* <NO_WAIVER>: */
541       {  { 0x4E06, "jkanji" }, { 0,0,1,1 }  },     /* CJK UNI.IDEO.NON-J */
542 #else
543       /* XXX This character does not exist in EUC-JP.  */
544       {  { 0x4E06, "jkanji" }, { 0,0,1,0 }  },     /* CJK UNI.IDEO.NON-J */
545 #endif
546       {  { 0x4E07, "jkanji" }, { 0,0,0,0 }  },     /* CJK UNI.IDEO.      */
547       { is_last: 1 }
548     }
549   },
550   {
551     { Tiswctype, TST_LOC_end }
552   }
553 };
554
555
556 /* dat_isw-funcs.c */