1254885Sdumbbell/*	$NetBSD: runetable.c,v 1.28 2013/04/13 10:21:21 joerg Exp $	*/
2254885Sdumbbell
3254885Sdumbbell/*-
4254885Sdumbbell * Copyright (c) 1993
5254885Sdumbbell *	The Regents of the University of California.  All rights reserved.
6254885Sdumbbell *
7254885Sdumbbell * This code is derived from software contributed to Berkeley by
8254885Sdumbbell * Paul Borman at Krystal Technologies.
9254885Sdumbbell *
10254885Sdumbbell * Redistribution and use in source and binary forms, with or without
11254885Sdumbbell * modification, are permitted provided that the following conditions
12254885Sdumbbell * are met:
13254885Sdumbbell * 1. Redistributions of source code must retain the above copyright
14254885Sdumbbell *    notice, this list of conditions and the following disclaimer.
15254885Sdumbbell * 2. Redistributions in binary form must reproduce the above copyright
16254885Sdumbbell *    notice, this list of conditions and the following disclaimer in the
17254885Sdumbbell *    documentation and/or other materials provided with the distribution.
18254885Sdumbbell * 3. Neither the name of the University nor the names of its contributors
19254885Sdumbbell *    may be used to endorse or promote products derived from this software
20254885Sdumbbell *    without specific prior written permission.
21254885Sdumbbell *
22254885Sdumbbell * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
23254885Sdumbbell * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
24254885Sdumbbell * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
25254885Sdumbbell * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
26254885Sdumbbell * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
27254885Sdumbbell * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
28254885Sdumbbell * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
29254885Sdumbbell * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
30254885Sdumbbell * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
31254885Sdumbbell * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
32254885Sdumbbell * SUCH DAMAGE.
33254885Sdumbbell *
34254885Sdumbbell * $FreeBSD: src/lib/libc/locale/table.c,v 1.13 2000/02/08 07:43:25 obrien Exp $
35254885Sdumbbell */
36254885Sdumbbell
37254885Sdumbbell#include <sys/cdefs.h>
38254885Sdumbbell#if defined(LIBC_SCCS) && !defined(lint)
39254885Sdumbbell#if 0
40254885Sdumbbellstatic char sccsid[] = "@(#)table.c	8.1 (Berkeley) 6/27/93";
41254885Sdumbbell#else
42254885Sdumbbell__RCSID("$NetBSD: runetable.c,v 1.28 2013/04/13 10:21:21 joerg Exp $");
43254885Sdumbbell#endif
44254885Sdumbbell#endif /* LIBC_SCCS and not lint */
45254885Sdumbbell
46254885Sdumbbell#include <sys/types.h>
47254885Sdumbbell#include <assert.h>
48254885Sdumbbell#include <wchar.h>
49254885Sdumbbell
50254885Sdumbbell#include "citrus_module.h"
51254885Sdumbbell#include "citrus_ctype.h"
52254885Sdumbbell#include "runetype_local.h"
53254885Sdumbbell
54254885Sdumbbell__dso_hidden const _RuneLocale _DefaultRuneLocale = {
55254885Sdumbbell    {	/*00*/	_RUNETYPE_C,
56254885Sdumbbell		_RUNETYPE_C,
57254885Sdumbbell		_RUNETYPE_C,
58254885Sdumbbell		_RUNETYPE_C,
59254885Sdumbbell		_RUNETYPE_C,
60254885Sdumbbell		_RUNETYPE_C,
61254885Sdumbbell		_RUNETYPE_C,
62254885Sdumbbell		_RUNETYPE_C,
63254885Sdumbbell	/*08*/	_RUNETYPE_C,
64254885Sdumbbell		_RUNETYPE_C|_RUNETYPE_S|_RUNETYPE_B,
65254885Sdumbbell		_RUNETYPE_C|_RUNETYPE_S,
66254885Sdumbbell		_RUNETYPE_C|_RUNETYPE_S,
67254885Sdumbbell		_RUNETYPE_C|_RUNETYPE_S,
68254885Sdumbbell		_RUNETYPE_C|_RUNETYPE_S,
69254885Sdumbbell		_RUNETYPE_C,
70254885Sdumbbell		_RUNETYPE_C,
71254885Sdumbbell	/*10*/	_RUNETYPE_C,
72254885Sdumbbell		_RUNETYPE_C,
73254885Sdumbbell		_RUNETYPE_C,
74254885Sdumbbell		_RUNETYPE_C,
75254885Sdumbbell		_RUNETYPE_C,
76254885Sdumbbell		_RUNETYPE_C,
77254885Sdumbbell		_RUNETYPE_C,
78254885Sdumbbell		_RUNETYPE_C,
79254885Sdumbbell	/*18*/	_RUNETYPE_C,
80254885Sdumbbell		_RUNETYPE_C,
81254885Sdumbbell		_RUNETYPE_C,
82254885Sdumbbell		_RUNETYPE_C,
83254885Sdumbbell		_RUNETYPE_C,
84254885Sdumbbell		_RUNETYPE_C,
85254885Sdumbbell		_RUNETYPE_C,
86254885Sdumbbell		_RUNETYPE_C,
87254885Sdumbbell	/*20*/	_RUNETYPE_S|_RUNETYPE_B|_RUNETYPE_R|_RUNETYPE_SW1,
88254885Sdumbbell		_RUNETYPE_P|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_SW1,
89254885Sdumbbell		_RUNETYPE_P|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_SW1,
90254885Sdumbbell		_RUNETYPE_P|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_SW1,
91254885Sdumbbell		_RUNETYPE_P|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_SW1,
92254885Sdumbbell		_RUNETYPE_P|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_SW1,
93254885Sdumbbell		_RUNETYPE_P|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_SW1,
94254885Sdumbbell		_RUNETYPE_P|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_SW1,
95254885Sdumbbell	/*28*/	_RUNETYPE_P|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_SW1,
96254885Sdumbbell		_RUNETYPE_P|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_SW1,
97254885Sdumbbell		_RUNETYPE_P|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_SW1,
98254885Sdumbbell		_RUNETYPE_P|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_SW1,
99254885Sdumbbell		_RUNETYPE_P|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_SW1,
100254885Sdumbbell		_RUNETYPE_P|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_SW1,
101254885Sdumbbell		_RUNETYPE_P|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_SW1,
102254885Sdumbbell		_RUNETYPE_P|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_SW1,
103254885Sdumbbell	/*30*/	_RUNETYPE_D|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_X|_RUNETYPE_SW1|0,
104254885Sdumbbell		_RUNETYPE_D|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_X|_RUNETYPE_SW1|1,
105254885Sdumbbell		_RUNETYPE_D|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_X|_RUNETYPE_SW1|2,
106254885Sdumbbell		_RUNETYPE_D|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_X|_RUNETYPE_SW1|3,
107254885Sdumbbell		_RUNETYPE_D|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_X|_RUNETYPE_SW1|4,
108254885Sdumbbell		_RUNETYPE_D|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_X|_RUNETYPE_SW1|5,
109254885Sdumbbell		_RUNETYPE_D|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_X|_RUNETYPE_SW1|6,
110254885Sdumbbell		_RUNETYPE_D|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_X|_RUNETYPE_SW1|7,
111254885Sdumbbell	/*38*/	_RUNETYPE_D|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_X|_RUNETYPE_SW1|8,
112254885Sdumbbell		_RUNETYPE_D|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_X|_RUNETYPE_SW1|9,
113254885Sdumbbell		_RUNETYPE_P|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_SW1,
114254885Sdumbbell		_RUNETYPE_P|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_SW1,
115254885Sdumbbell		_RUNETYPE_P|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_SW1,
116254885Sdumbbell		_RUNETYPE_P|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_SW1,
117254885Sdumbbell		_RUNETYPE_P|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_SW1,
118254885Sdumbbell		_RUNETYPE_P|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_SW1,
119254885Sdumbbell	/*40*/	_RUNETYPE_P|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_SW1,
120254885Sdumbbell		_RUNETYPE_U|_RUNETYPE_X|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_A|_RUNETYPE_SW1|10,
121254885Sdumbbell		_RUNETYPE_U|_RUNETYPE_X|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_A|_RUNETYPE_SW1|11,
122254885Sdumbbell		_RUNETYPE_U|_RUNETYPE_X|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_A|_RUNETYPE_SW1|12,
123254885Sdumbbell		_RUNETYPE_U|_RUNETYPE_X|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_A|_RUNETYPE_SW1|13,
124254885Sdumbbell		_RUNETYPE_U|_RUNETYPE_X|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_A|_RUNETYPE_SW1|14,
125254885Sdumbbell		_RUNETYPE_U|_RUNETYPE_X|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_A|_RUNETYPE_SW1|15,
126254885Sdumbbell		_RUNETYPE_U|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_A|_RUNETYPE_SW1,
127254885Sdumbbell	/*48*/	_RUNETYPE_U|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_A|_RUNETYPE_SW1,
128254885Sdumbbell		_RUNETYPE_U|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_A|_RUNETYPE_SW1,
129254885Sdumbbell		_RUNETYPE_U|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_A|_RUNETYPE_SW1,
130254885Sdumbbell		_RUNETYPE_U|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_A|_RUNETYPE_SW1,
131254885Sdumbbell		_RUNETYPE_U|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_A|_RUNETYPE_SW1,
132254885Sdumbbell		_RUNETYPE_U|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_A|_RUNETYPE_SW1,
133254885Sdumbbell		_RUNETYPE_U|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_A|_RUNETYPE_SW1,
134254885Sdumbbell		_RUNETYPE_U|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_A|_RUNETYPE_SW1,
135254885Sdumbbell	/*50*/	_RUNETYPE_U|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_A|_RUNETYPE_SW1,
136254885Sdumbbell		_RUNETYPE_U|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_A|_RUNETYPE_SW1,
137254885Sdumbbell		_RUNETYPE_U|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_A|_RUNETYPE_SW1,
138254885Sdumbbell		_RUNETYPE_U|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_A|_RUNETYPE_SW1,
139254885Sdumbbell		_RUNETYPE_U|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_A|_RUNETYPE_SW1,
140254885Sdumbbell		_RUNETYPE_U|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_A|_RUNETYPE_SW1,
141254885Sdumbbell		_RUNETYPE_U|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_A|_RUNETYPE_SW1,
142254885Sdumbbell		_RUNETYPE_U|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_A|_RUNETYPE_SW1,
143254885Sdumbbell	/*58*/	_RUNETYPE_U|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_A|_RUNETYPE_SW1,
144254885Sdumbbell		_RUNETYPE_U|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_A|_RUNETYPE_SW1,
145254885Sdumbbell		_RUNETYPE_U|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_A|_RUNETYPE_SW1,
146254885Sdumbbell		_RUNETYPE_P|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_SW1,
147254885Sdumbbell		_RUNETYPE_P|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_SW1,
148254885Sdumbbell		_RUNETYPE_P|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_SW1,
149254885Sdumbbell		_RUNETYPE_P|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_SW1,
150254885Sdumbbell		_RUNETYPE_P|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_SW1,
151254885Sdumbbell	/*60*/	_RUNETYPE_P|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_SW1,
152254885Sdumbbell		_RUNETYPE_L|_RUNETYPE_X|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_A|_RUNETYPE_SW1|10,
153254885Sdumbbell		_RUNETYPE_L|_RUNETYPE_X|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_A|_RUNETYPE_SW1|11,
154254885Sdumbbell		_RUNETYPE_L|_RUNETYPE_X|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_A|_RUNETYPE_SW1|12,
155254885Sdumbbell		_RUNETYPE_L|_RUNETYPE_X|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_A|_RUNETYPE_SW1|13,
156254885Sdumbbell		_RUNETYPE_L|_RUNETYPE_X|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_A|_RUNETYPE_SW1|14,
157254885Sdumbbell		_RUNETYPE_L|_RUNETYPE_X|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_A|_RUNETYPE_SW1|15,
158254885Sdumbbell		_RUNETYPE_L|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_A|_RUNETYPE_SW1,
159254885Sdumbbell	/*68*/	_RUNETYPE_L|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_A|_RUNETYPE_SW1,
160254885Sdumbbell		_RUNETYPE_L|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_A|_RUNETYPE_SW1,
161254885Sdumbbell		_RUNETYPE_L|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_A|_RUNETYPE_SW1,
162254885Sdumbbell		_RUNETYPE_L|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_A|_RUNETYPE_SW1,
163254885Sdumbbell		_RUNETYPE_L|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_A|_RUNETYPE_SW1,
164254885Sdumbbell		_RUNETYPE_L|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_A|_RUNETYPE_SW1,
165254885Sdumbbell		_RUNETYPE_L|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_A|_RUNETYPE_SW1,
166254885Sdumbbell		_RUNETYPE_L|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_A|_RUNETYPE_SW1,
167254885Sdumbbell	/*70*/	_RUNETYPE_L|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_A|_RUNETYPE_SW1,
168254885Sdumbbell		_RUNETYPE_L|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_A|_RUNETYPE_SW1,
169254885Sdumbbell		_RUNETYPE_L|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_A|_RUNETYPE_SW1,
170254885Sdumbbell		_RUNETYPE_L|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_A|_RUNETYPE_SW1,
171254885Sdumbbell		_RUNETYPE_L|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_A|_RUNETYPE_SW1,
172254885Sdumbbell		_RUNETYPE_L|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_A|_RUNETYPE_SW1,
173254885Sdumbbell		_RUNETYPE_L|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_A|_RUNETYPE_SW1,
174254885Sdumbbell		_RUNETYPE_L|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_A|_RUNETYPE_SW1,
175254885Sdumbbell	/*78*/	_RUNETYPE_L|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_A|_RUNETYPE_SW1,
176254885Sdumbbell		_RUNETYPE_L|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_A|_RUNETYPE_SW1,
177254885Sdumbbell		_RUNETYPE_L|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_A|_RUNETYPE_SW1,
178254885Sdumbbell		_RUNETYPE_P|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_SW1,
179254885Sdumbbell		_RUNETYPE_P|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_SW1,
180254885Sdumbbell		_RUNETYPE_P|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_SW1,
181254885Sdumbbell		_RUNETYPE_P|_RUNETYPE_R|_RUNETYPE_G|_RUNETYPE_SW1,
182254885Sdumbbell		_RUNETYPE_C,
183254885Sdumbbell#ifdef ALL_80_TO_FF_SW1
184254885Sdumbbell	/*80*/	_RUNETYPE_R|_RUNETYPE_SW1, _RUNETYPE_R|_RUNETYPE_SW1,
185254885Sdumbbell		_RUNETYPE_R|_RUNETYPE_SW1, _RUNETYPE_R|_RUNETYPE_SW1,
186254885Sdumbbell		_RUNETYPE_R|_RUNETYPE_SW1, _RUNETYPE_R|_RUNETYPE_SW1,
187254885Sdumbbell		_RUNETYPE_R|_RUNETYPE_SW1, _RUNETYPE_R|_RUNETYPE_SW1,
188254885Sdumbbell		_RUNETYPE_R|_RUNETYPE_SW1, _RUNETYPE_R|_RUNETYPE_SW1,
189254885Sdumbbell		_RUNETYPE_R|_RUNETYPE_SW1, _RUNETYPE_R|_RUNETYPE_SW1,
190254885Sdumbbell		_RUNETYPE_R|_RUNETYPE_SW1, _RUNETYPE_R|_RUNETYPE_SW1,
191254885Sdumbbell		_RUNETYPE_R|_RUNETYPE_SW1, _RUNETYPE_R|_RUNETYPE_SW1,
192254885Sdumbbell	/*90*/	_RUNETYPE_R|_RUNETYPE_SW1, _RUNETYPE_R|_RUNETYPE_SW1,
193254885Sdumbbell		_RUNETYPE_R|_RUNETYPE_SW1, _RUNETYPE_R|_RUNETYPE_SW1,
194254885Sdumbbell		_RUNETYPE_R|_RUNETYPE_SW1, _RUNETYPE_R|_RUNETYPE_SW1,
195254885Sdumbbell		_RUNETYPE_R|_RUNETYPE_SW1, _RUNETYPE_R|_RUNETYPE_SW1,
196254885Sdumbbell		_RUNETYPE_R|_RUNETYPE_SW1, _RUNETYPE_R|_RUNETYPE_SW1,
197254885Sdumbbell		_RUNETYPE_R|_RUNETYPE_SW1, _RUNETYPE_R|_RUNETYPE_SW1,
198254885Sdumbbell		_RUNETYPE_R|_RUNETYPE_SW1, _RUNETYPE_R|_RUNETYPE_SW1,
199254885Sdumbbell		_RUNETYPE_R|_RUNETYPE_SW1, _RUNETYPE_R|_RUNETYPE_SW1,
200254885Sdumbbell	/*A0*/	_RUNETYPE_R|_RUNETYPE_SW1, _RUNETYPE_R|_RUNETYPE_SW1,
201254885Sdumbbell		_RUNETYPE_R|_RUNETYPE_SW1, _RUNETYPE_R|_RUNETYPE_SW1,
202254885Sdumbbell		_RUNETYPE_R|_RUNETYPE_SW1, _RUNETYPE_R|_RUNETYPE_SW1,
203254885Sdumbbell		_RUNETYPE_R|_RUNETYPE_SW1, _RUNETYPE_R|_RUNETYPE_SW1,
204254885Sdumbbell		_RUNETYPE_R|_RUNETYPE_SW1, _RUNETYPE_R|_RUNETYPE_SW1,
205254885Sdumbbell		_RUNETYPE_R|_RUNETYPE_SW1, _RUNETYPE_R|_RUNETYPE_SW1,
206254885Sdumbbell		_RUNETYPE_R|_RUNETYPE_SW1, _RUNETYPE_R|_RUNETYPE_SW1,
207254885Sdumbbell		_RUNETYPE_R|_RUNETYPE_SW1, _RUNETYPE_R|_RUNETYPE_SW1,
208254885Sdumbbell	/*B0*/	_RUNETYPE_R|_RUNETYPE_SW1, _RUNETYPE_R|_RUNETYPE_SW1,
209254885Sdumbbell		_RUNETYPE_R|_RUNETYPE_SW1, _RUNETYPE_R|_RUNETYPE_SW1,
210254885Sdumbbell		_RUNETYPE_R|_RUNETYPE_SW1, _RUNETYPE_R|_RUNETYPE_SW1,
211254885Sdumbbell		_RUNETYPE_R|_RUNETYPE_SW1, _RUNETYPE_R|_RUNETYPE_SW1,
212254885Sdumbbell		_RUNETYPE_R|_RUNETYPE_SW1, _RUNETYPE_R|_RUNETYPE_SW1,
213254885Sdumbbell		_RUNETYPE_R|_RUNETYPE_SW1, _RUNETYPE_R|_RUNETYPE_SW1,
214254885Sdumbbell		_RUNETYPE_R|_RUNETYPE_SW1, _RUNETYPE_R|_RUNETYPE_SW1,
215254885Sdumbbell		_RUNETYPE_R|_RUNETYPE_SW1, _RUNETYPE_R|_RUNETYPE_SW1,
216254885Sdumbbell	/*C0*/	_RUNETYPE_R|_RUNETYPE_SW1, _RUNETYPE_R|_RUNETYPE_SW1,
217254885Sdumbbell		_RUNETYPE_R|_RUNETYPE_SW1, _RUNETYPE_R|_RUNETYPE_SW1,
218254885Sdumbbell		_RUNETYPE_R|_RUNETYPE_SW1, _RUNETYPE_R|_RUNETYPE_SW1,
219254885Sdumbbell		_RUNETYPE_R|_RUNETYPE_SW1, _RUNETYPE_R|_RUNETYPE_SW1,
220254885Sdumbbell		_RUNETYPE_R|_RUNETYPE_SW1, _RUNETYPE_R|_RUNETYPE_SW1,
221254885Sdumbbell		_RUNETYPE_R|_RUNETYPE_SW1, _RUNETYPE_R|_RUNETYPE_SW1,
222254885Sdumbbell		_RUNETYPE_R|_RUNETYPE_SW1, _RUNETYPE_R|_RUNETYPE_SW1,
223254885Sdumbbell		_RUNETYPE_R|_RUNETYPE_SW1, _RUNETYPE_R|_RUNETYPE_SW1,
224254885Sdumbbell	/*D0*/	_RUNETYPE_R|_RUNETYPE_SW1, _RUNETYPE_R|_RUNETYPE_SW1,
225254885Sdumbbell		_RUNETYPE_R|_RUNETYPE_SW1, _RUNETYPE_R|_RUNETYPE_SW1,
226254885Sdumbbell		_RUNETYPE_R|_RUNETYPE_SW1, _RUNETYPE_R|_RUNETYPE_SW1,
227254885Sdumbbell		_RUNETYPE_R|_RUNETYPE_SW1, _RUNETYPE_R|_RUNETYPE_SW1,
228254885Sdumbbell		_RUNETYPE_R|_RUNETYPE_SW1, _RUNETYPE_R|_RUNETYPE_SW1,
229254885Sdumbbell		_RUNETYPE_R|_RUNETYPE_SW1, _RUNETYPE_R|_RUNETYPE_SW1,
230254885Sdumbbell		_RUNETYPE_R|_RUNETYPE_SW1, _RUNETYPE_R|_RUNETYPE_SW1,
231254885Sdumbbell		_RUNETYPE_R|_RUNETYPE_SW1, _RUNETYPE_R|_RUNETYPE_SW1,
232254885Sdumbbell	/*E0*/	_RUNETYPE_R|_RUNETYPE_SW1, _RUNETYPE_R|_RUNETYPE_SW1,
233254885Sdumbbell		_RUNETYPE_R|_RUNETYPE_SW1, _RUNETYPE_R|_RUNETYPE_SW1,
234254885Sdumbbell		_RUNETYPE_R|_RUNETYPE_SW1, _RUNETYPE_R|_RUNETYPE_SW1,
235254885Sdumbbell		_RUNETYPE_R|_RUNETYPE_SW1, _RUNETYPE_R|_RUNETYPE_SW1,
236254885Sdumbbell		_RUNETYPE_R|_RUNETYPE_SW1, _RUNETYPE_R|_RUNETYPE_SW1,
237254885Sdumbbell		_RUNETYPE_R|_RUNETYPE_SW1, _RUNETYPE_R|_RUNETYPE_SW1,
238254885Sdumbbell		_RUNETYPE_R|_RUNETYPE_SW1, _RUNETYPE_R|_RUNETYPE_SW1,
239254885Sdumbbell		_RUNETYPE_R|_RUNETYPE_SW1, _RUNETYPE_R|_RUNETYPE_SW1,
240254885Sdumbbell	/*F0*/	_RUNETYPE_R|_RUNETYPE_SW1, _RUNETYPE_R|_RUNETYPE_SW1,
241254885Sdumbbell		_RUNETYPE_R|_RUNETYPE_SW1, _RUNETYPE_R|_RUNETYPE_SW1,
242254885Sdumbbell		_RUNETYPE_R|_RUNETYPE_SW1, _RUNETYPE_R|_RUNETYPE_SW1,
243254885Sdumbbell		_RUNETYPE_R|_RUNETYPE_SW1, _RUNETYPE_R|_RUNETYPE_SW1,
244254885Sdumbbell		_RUNETYPE_R|_RUNETYPE_SW1, _RUNETYPE_R|_RUNETYPE_SW1,
245254885Sdumbbell		_RUNETYPE_R|_RUNETYPE_SW1, _RUNETYPE_R|_RUNETYPE_SW1,
246254885Sdumbbell		_RUNETYPE_R|_RUNETYPE_SW1, _RUNETYPE_R|_RUNETYPE_SW1,
247254885Sdumbbell		_RUNETYPE_R|_RUNETYPE_SW1, _RUNETYPE_R|_RUNETYPE_SW1,
248254885Sdumbbell#endif
249254885Sdumbbell    },
250254885Sdumbbell    {	0x00,	0x01,	0x02,	0x03,	0x04,	0x05,	0x06,	0x07,
251254885Sdumbbell     	0x08,	0x09,	0x0a,	0x0b,	0x0c,	0x0d,	0x0e,	0x0f,
252254885Sdumbbell	0x10,	0x11,	0x12,	0x13,	0x14,	0x15,	0x16,	0x17,
253254885Sdumbbell     	0x18,	0x19,	0x1a,	0x1b,	0x1c,	0x1d,	0x1e,	0x1f,
254254885Sdumbbell	0x20,	0x21,	0x22,	0x23,	0x24,	0x25,	0x26,	0x27,
255254885Sdumbbell     	0x28,	0x29,	0x2a,	0x2b,	0x2c,	0x2d,	0x2e,	0x2f,
256254885Sdumbbell	0x30,	0x31,	0x32,	0x33,	0x34,	0x35,	0x36,	0x37,
257254885Sdumbbell     	0x38,	0x39,	0x3a,	0x3b,	0x3c,	0x3d,	0x3e,	0x3f,
258254885Sdumbbell	0x40,	'a',	'b',	'c',	'd',	'e',	'f',	'g',
259254885Sdumbbell     	'h',	'i',	'j',	'k',	'l',	'm',	'n',	'o',
260254885Sdumbbell	'p',	'q',	'r',	's',	't',	'u',	'v',	'w',
261254885Sdumbbell     	'x',	'y',	'z',	0x5b,	0x5c,	0x5d,	0x5e,	0x5f,
262254885Sdumbbell	0x60,	'a',	'b',	'c',	'd',	'e',	'f',	'g',
263254885Sdumbbell     	'h',	'i',	'j',	'k',	'l',	'm',	'n',	'o',
264254885Sdumbbell	'p',	'q',	'r',	's',	't',	'u',	'v',	'w',
265254885Sdumbbell     	'x',	'y',	'z',	0x7b,	0x7c,	0x7d,	0x7e,	0x7f,
266254885Sdumbbell	0x80,	0x81,	0x82,	0x83,	0x84,	0x85,	0x86,	0x87,
267254885Sdumbbell     	0x88,	0x89,	0x8a,	0x8b,	0x8c,	0x8d,	0x8e,	0x8f,
268254885Sdumbbell	0x90,	0x91,	0x92,	0x93,	0x94,	0x95,	0x96,	0x97,
269254885Sdumbbell     	0x98,	0x99,	0x9a,	0x9b,	0x9c,	0x9d,	0x9e,	0x9f,
270254885Sdumbbell	0xa0,	0xa1,	0xa2,	0xa3,	0xa4,	0xa5,	0xa6,	0xa7,
271254885Sdumbbell     	0xa8,	0xa9,	0xaa,	0xab,	0xac,	0xad,	0xae,	0xaf,
272254885Sdumbbell	0xb0,	0xb1,	0xb2,	0xb3,	0xb4,	0xb5,	0xb6,	0xb7,
273254885Sdumbbell     	0xb8,	0xb9,	0xba,	0xbb,	0xbc,	0xbd,	0xbe,	0xbf,
274254885Sdumbbell	0xc0,	0xc1,	0xc2,	0xc3,	0xc4,	0xc5,	0xc6,	0xc7,
275254885Sdumbbell     	0xc8,	0xc9,	0xca,	0xcb,	0xcc,	0xcd,	0xce,	0xcf,
276254885Sdumbbell	0xd0,	0xd1,	0xd2,	0xd3,	0xd4,	0xd5,	0xd6,	0xd7,
277254885Sdumbbell     	0xd8,	0xd9,	0xda,	0xdb,	0xdc,	0xdd,	0xde,	0xdf,
278254885Sdumbbell	0xe0,	0xe1,	0xe2,	0xe3,	0xe4,	0xe5,	0xe6,	0xe7,
279254885Sdumbbell     	0xe8,	0xe9,	0xea,	0xeb,	0xec,	0xed,	0xee,	0xef,
280254885Sdumbbell	0xf0,	0xf1,	0xf2,	0xf3,	0xf4,	0xf5,	0xf6,	0xf7,
281254885Sdumbbell     	0xf8,	0xf9,	0xfa,	0xfb,	0xfc,	0xfd,	0xfe,	0xff,
282254885Sdumbbell    },
283254885Sdumbbell    {	0x00,	0x01,	0x02,	0x03,	0x04,	0x05,	0x06,	0x07,
284254885Sdumbbell     	0x08,	0x09,	0x0a,	0x0b,	0x0c,	0x0d,	0x0e,	0x0f,
285254885Sdumbbell	0x10,	0x11,	0x12,	0x13,	0x14,	0x15,	0x16,	0x17,
286254885Sdumbbell     	0x18,	0x19,	0x1a,	0x1b,	0x1c,	0x1d,	0x1e,	0x1f,
287254885Sdumbbell	0x20,	0x21,	0x22,	0x23,	0x24,	0x25,	0x26,	0x27,
288254885Sdumbbell     	0x28,	0x29,	0x2a,	0x2b,	0x2c,	0x2d,	0x2e,	0x2f,
289254885Sdumbbell	0x30,	0x31,	0x32,	0x33,	0x34,	0x35,	0x36,	0x37,
290254885Sdumbbell     	0x38,	0x39,	0x3a,	0x3b,	0x3c,	0x3d,	0x3e,	0x3f,
291254885Sdumbbell	0x40,	'A',	'B',	'C',	'D',	'E',	'F',	'G',
292254885Sdumbbell     	'H',	'I',	'J',	'K',	'L',	'M',	'N',	'O',
293254885Sdumbbell	'P',	'Q',	'R',	'S',	'T',	'U',	'V',	'W',
294254885Sdumbbell     	'X',	'Y',	'Z',	0x5b,	0x5c,	0x5d,	0x5e,	0x5f,
295254885Sdumbbell	0x60,	'A',	'B',	'C',	'D',	'E',	'F',	'G',
296254885Sdumbbell     	'H',	'I',	'J',	'K',	'L',	'M',	'N',	'O',
297254885Sdumbbell	'P',	'Q',	'R',	'S',	'T',	'U',	'V',	'W',
298254885Sdumbbell     	'X',	'Y',	'Z',	0x7b,	0x7c,	0x7d,	0x7e,	0x7f,
299254885Sdumbbell	0x80,	0x81,	0x82,	0x83,	0x84,	0x85,	0x86,	0x87,
300254885Sdumbbell     	0x88,	0x89,	0x8a,	0x8b,	0x8c,	0x8d,	0x8e,	0x8f,
301254885Sdumbbell	0x90,	0x91,	0x92,	0x93,	0x94,	0x95,	0x96,	0x97,
302254885Sdumbbell     	0x98,	0x99,	0x9a,	0x9b,	0x9c,	0x9d,	0x9e,	0x9f,
303254885Sdumbbell	0xa0,	0xa1,	0xa2,	0xa3,	0xa4,	0xa5,	0xa6,	0xa7,
304254885Sdumbbell     	0xa8,	0xa9,	0xaa,	0xab,	0xac,	0xad,	0xae,	0xaf,
305254885Sdumbbell	0xb0,	0xb1,	0xb2,	0xb3,	0xb4,	0xb5,	0xb6,	0xb7,
306254885Sdumbbell     	0xb8,	0xb9,	0xba,	0xbb,	0xbc,	0xbd,	0xbe,	0xbf,
307254885Sdumbbell	0xc0,	0xc1,	0xc2,	0xc3,	0xc4,	0xc5,	0xc6,	0xc7,
308254885Sdumbbell     	0xc8,	0xc9,	0xca,	0xcb,	0xcc,	0xcd,	0xce,	0xcf,
309254885Sdumbbell	0xd0,	0xd1,	0xd2,	0xd3,	0xd4,	0xd5,	0xd6,	0xd7,
310254885Sdumbbell     	0xd8,	0xd9,	0xda,	0xdb,	0xdc,	0xdd,	0xde,	0xdf,
311254885Sdumbbell	0xe0,	0xe1,	0xe2,	0xe3,	0xe4,	0xe5,	0xe6,	0xe7,
312254885Sdumbbell     	0xe8,	0xe9,	0xea,	0xeb,	0xec,	0xed,	0xee,	0xef,
313254885Sdumbbell	0xf0,	0xf1,	0xf2,	0xf3,	0xf4,	0xf5,	0xf6,	0xf7,
314254885Sdumbbell     	0xf8,	0xf9,	0xfa,	0xfb,	0xfc,	0xfd,	0xfe,	0xff,
315254885Sdumbbell    },
316254885Sdumbbell    { 0, NULL },
317254885Sdumbbell    { 0, NULL },
318254885Sdumbbell    { 0, NULL },
319254885Sdumbbell    NULL, 0,
320254885Sdumbbell    "646",
321254885Sdumbbell    &_citrus_ctype_default,
322254885Sdumbbell    {
323254885Sdumbbell	{   "towlower",
324254885Sdumbbell	    __UNCONST(&_DefaultRuneLocale.rl_maplower[0]),
325254885Sdumbbell	    __UNCONST(&_DefaultRuneLocale.rl_maplower_ext)
326254885Sdumbbell	},
327254885Sdumbbell	{   "towupper",
328254885Sdumbbell	    __UNCONST(&_DefaultRuneLocale.rl_mapupper[0]),
329254885Sdumbbell	    __UNCONST(&_DefaultRuneLocale.rl_mapupper_ext)
330254885Sdumbbell	},
331254885Sdumbbell    },
332254885Sdumbbell    {
333254885Sdumbbell	    { "alnum", _RUNETYPE_A|_RUNETYPE_D },
334254885Sdumbbell	    { "alpha", _RUNETYPE_A },
335254885Sdumbbell	    { "blank", _RUNETYPE_B },
336254885Sdumbbell	    { "cntrl", _RUNETYPE_C },
337254885Sdumbbell	    { "digit", _RUNETYPE_D },
338254885Sdumbbell	    { "graph", _RUNETYPE_G },
339254885Sdumbbell	    { "lower", _RUNETYPE_L },
340254885Sdumbbell	    { "print", _RUNETYPE_R },
341254885Sdumbbell	    { "punct", _RUNETYPE_P },
342254885Sdumbbell	    { "space", _RUNETYPE_S },
343254885Sdumbbell	    { "upper", _RUNETYPE_U },
344254885Sdumbbell	    { "xdigit", _RUNETYPE_X },
345254885Sdumbbell    },
346254885Sdumbbell    _C_ctype_tab_,
347254885Sdumbbell    _C_tolower_tab_,
348254885Sdumbbell    _C_toupper_tab_,
349254885Sdumbbell
350254885Sdumbbell#ifdef __BUILD_LEGACY
351254885Sdumbbell    _C_compat_bsdctype,
352254885Sdumbbell#endif
353254885Sdumbbell};
354254885Sdumbbell