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