10d5acd74SJohn Marino /*-
20d5acd74SJohn Marino * Copyright (c) 1993
30d5acd74SJohn Marino * The Regents of the University of California. All rights reserved.
40d5acd74SJohn Marino *
50d5acd74SJohn Marino * This code is derived from software contributed to Berkeley by
60d5acd74SJohn Marino * Paul Borman at Krystal Technologies.
70d5acd74SJohn Marino *
80d5acd74SJohn Marino * Copyright (c) 2011 The FreeBSD Foundation
90d5acd74SJohn Marino * All rights reserved.
100d5acd74SJohn Marino * Portions of this software were developed by David Chisnall
110d5acd74SJohn Marino * under sponsorship from the FreeBSD Foundation.
120d5acd74SJohn Marino *
130d5acd74SJohn Marino * Redistribution and use in source and binary forms, with or without
140d5acd74SJohn Marino * modification, are permitted provided that the following conditions
150d5acd74SJohn Marino * are met:
160d5acd74SJohn Marino * 1. Redistributions of source code must retain the above copyright
170d5acd74SJohn Marino * notice, this list of conditions and the following disclaimer.
180d5acd74SJohn Marino * 2. Redistributions in binary form must reproduce the above copyright
190d5acd74SJohn Marino * notice, this list of conditions and the following disclaimer in the
200d5acd74SJohn Marino * documentation and/or other materials provided with the distribution.
21c66c7e2fSzrj * 3. Neither the name of the University nor the names of its contributors
220d5acd74SJohn Marino * may be used to endorse or promote products derived from this software
230d5acd74SJohn Marino * without specific prior written permission.
240d5acd74SJohn Marino *
250d5acd74SJohn Marino * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
260d5acd74SJohn Marino * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
270d5acd74SJohn Marino * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
280d5acd74SJohn Marino * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
290d5acd74SJohn Marino * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
300d5acd74SJohn Marino * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
310d5acd74SJohn Marino * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
320d5acd74SJohn Marino * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
330d5acd74SJohn Marino * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
340d5acd74SJohn Marino * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
350d5acd74SJohn Marino * SUCH DAMAGE.
360d5acd74SJohn Marino *
370d5acd74SJohn Marino * @(#)table.c 8.1 (Berkeley) 6/27/93
380d5acd74SJohn Marino * $FreeBSD: head/lib/libc/locale/table.c 232498 2012-03-04 15:31:13Z theraven $
390d5acd74SJohn Marino */
400d5acd74SJohn Marino
410d5acd74SJohn Marino
420d5acd74SJohn Marino #include <ctype.h>
430d5acd74SJohn Marino #include <runetype.h>
440d5acd74SJohn Marino #include <wchar.h>
450d5acd74SJohn Marino #include "mblocal.h"
460d5acd74SJohn Marino
470d5acd74SJohn Marino const _RuneLocale _DefaultRuneLocale = {
48*6173c3dfSSascha Wildner .__magic = _RUNE_MAGIC_1,
49*6173c3dfSSascha Wildner .__encoding = "NONE",
50*6173c3dfSSascha Wildner .__sgetrune = NULL,
51*6173c3dfSSascha Wildner .__sputrune = NULL,
52*6173c3dfSSascha Wildner .__invalid_rune = 0xFFFD,
530d5acd74SJohn Marino
54*6173c3dfSSascha Wildner .__runetype = {
55*6173c3dfSSascha Wildner /*00*/ _CTYPE_C,
560d5acd74SJohn Marino _CTYPE_C,
570d5acd74SJohn Marino _CTYPE_C,
580d5acd74SJohn Marino _CTYPE_C,
590d5acd74SJohn Marino _CTYPE_C,
600d5acd74SJohn Marino _CTYPE_C,
610d5acd74SJohn Marino _CTYPE_C,
620d5acd74SJohn Marino _CTYPE_C,
630d5acd74SJohn Marino /*08*/ _CTYPE_C,
640d5acd74SJohn Marino _CTYPE_C|_CTYPE_S|_CTYPE_B,
650d5acd74SJohn Marino _CTYPE_C|_CTYPE_S,
660d5acd74SJohn Marino _CTYPE_C|_CTYPE_S,
670d5acd74SJohn Marino _CTYPE_C|_CTYPE_S,
680d5acd74SJohn Marino _CTYPE_C|_CTYPE_S,
690d5acd74SJohn Marino _CTYPE_C,
700d5acd74SJohn Marino _CTYPE_C,
710d5acd74SJohn Marino /*10*/ _CTYPE_C,
720d5acd74SJohn Marino _CTYPE_C,
730d5acd74SJohn Marino _CTYPE_C,
740d5acd74SJohn Marino _CTYPE_C,
750d5acd74SJohn Marino _CTYPE_C,
760d5acd74SJohn Marino _CTYPE_C,
770d5acd74SJohn Marino _CTYPE_C,
780d5acd74SJohn Marino _CTYPE_C,
790d5acd74SJohn Marino /*18*/ _CTYPE_C,
800d5acd74SJohn Marino _CTYPE_C,
810d5acd74SJohn Marino _CTYPE_C,
820d5acd74SJohn Marino _CTYPE_C,
830d5acd74SJohn Marino _CTYPE_C,
840d5acd74SJohn Marino _CTYPE_C,
850d5acd74SJohn Marino _CTYPE_C,
860d5acd74SJohn Marino _CTYPE_C,
870d5acd74SJohn Marino /*20*/ _CTYPE_S|_CTYPE_B|_CTYPE_R,
880d5acd74SJohn Marino _CTYPE_P|_CTYPE_R|_CTYPE_G,
890d5acd74SJohn Marino _CTYPE_P|_CTYPE_R|_CTYPE_G,
900d5acd74SJohn Marino _CTYPE_P|_CTYPE_R|_CTYPE_G,
910d5acd74SJohn Marino _CTYPE_P|_CTYPE_R|_CTYPE_G,
920d5acd74SJohn Marino _CTYPE_P|_CTYPE_R|_CTYPE_G,
930d5acd74SJohn Marino _CTYPE_P|_CTYPE_R|_CTYPE_G,
940d5acd74SJohn Marino _CTYPE_P|_CTYPE_R|_CTYPE_G,
950d5acd74SJohn Marino /*28*/ _CTYPE_P|_CTYPE_R|_CTYPE_G,
960d5acd74SJohn Marino _CTYPE_P|_CTYPE_R|_CTYPE_G,
970d5acd74SJohn Marino _CTYPE_P|_CTYPE_R|_CTYPE_G,
980d5acd74SJohn Marino _CTYPE_P|_CTYPE_R|_CTYPE_G,
990d5acd74SJohn Marino _CTYPE_P|_CTYPE_R|_CTYPE_G,
1000d5acd74SJohn Marino _CTYPE_P|_CTYPE_R|_CTYPE_G,
1010d5acd74SJohn Marino _CTYPE_P|_CTYPE_R|_CTYPE_G,
1020d5acd74SJohn Marino _CTYPE_P|_CTYPE_R|_CTYPE_G,
10331c9f6f2SJohn Marino /*30*/ _CTYPE_D|_CTYPE_R|_CTYPE_G|_CTYPE_X|_CTYPE_N|0,
10431c9f6f2SJohn Marino _CTYPE_D|_CTYPE_R|_CTYPE_G|_CTYPE_X|_CTYPE_N|1,
10531c9f6f2SJohn Marino _CTYPE_D|_CTYPE_R|_CTYPE_G|_CTYPE_X|_CTYPE_N|2,
10631c9f6f2SJohn Marino _CTYPE_D|_CTYPE_R|_CTYPE_G|_CTYPE_X|_CTYPE_N|3,
10731c9f6f2SJohn Marino _CTYPE_D|_CTYPE_R|_CTYPE_G|_CTYPE_X|_CTYPE_N|4,
10831c9f6f2SJohn Marino _CTYPE_D|_CTYPE_R|_CTYPE_G|_CTYPE_X|_CTYPE_N|5,
10931c9f6f2SJohn Marino _CTYPE_D|_CTYPE_R|_CTYPE_G|_CTYPE_X|_CTYPE_N|6,
11031c9f6f2SJohn Marino _CTYPE_D|_CTYPE_R|_CTYPE_G|_CTYPE_X|_CTYPE_N|7,
11131c9f6f2SJohn Marino /*38*/ _CTYPE_D|_CTYPE_R|_CTYPE_G|_CTYPE_X|_CTYPE_N|8,
11231c9f6f2SJohn Marino _CTYPE_D|_CTYPE_R|_CTYPE_G|_CTYPE_X|_CTYPE_N|9,
1130d5acd74SJohn Marino _CTYPE_P|_CTYPE_R|_CTYPE_G,
1140d5acd74SJohn Marino _CTYPE_P|_CTYPE_R|_CTYPE_G,
1150d5acd74SJohn Marino _CTYPE_P|_CTYPE_R|_CTYPE_G,
1160d5acd74SJohn Marino _CTYPE_P|_CTYPE_R|_CTYPE_G,
1170d5acd74SJohn Marino _CTYPE_P|_CTYPE_R|_CTYPE_G,
1180d5acd74SJohn Marino _CTYPE_P|_CTYPE_R|_CTYPE_G,
1190d5acd74SJohn Marino /*40*/ _CTYPE_P|_CTYPE_R|_CTYPE_G,
1200d5acd74SJohn Marino _CTYPE_U|_CTYPE_X|_CTYPE_R|_CTYPE_G|_CTYPE_A|10,
1210d5acd74SJohn Marino _CTYPE_U|_CTYPE_X|_CTYPE_R|_CTYPE_G|_CTYPE_A|11,
1220d5acd74SJohn Marino _CTYPE_U|_CTYPE_X|_CTYPE_R|_CTYPE_G|_CTYPE_A|12,
1230d5acd74SJohn Marino _CTYPE_U|_CTYPE_X|_CTYPE_R|_CTYPE_G|_CTYPE_A|13,
1240d5acd74SJohn Marino _CTYPE_U|_CTYPE_X|_CTYPE_R|_CTYPE_G|_CTYPE_A|14,
1250d5acd74SJohn Marino _CTYPE_U|_CTYPE_X|_CTYPE_R|_CTYPE_G|_CTYPE_A|15,
1260d5acd74SJohn Marino _CTYPE_U|_CTYPE_R|_CTYPE_G|_CTYPE_A,
1270d5acd74SJohn Marino /*48*/ _CTYPE_U|_CTYPE_R|_CTYPE_G|_CTYPE_A,
1280d5acd74SJohn Marino _CTYPE_U|_CTYPE_R|_CTYPE_G|_CTYPE_A,
1290d5acd74SJohn Marino _CTYPE_U|_CTYPE_R|_CTYPE_G|_CTYPE_A,
1300d5acd74SJohn Marino _CTYPE_U|_CTYPE_R|_CTYPE_G|_CTYPE_A,
1310d5acd74SJohn Marino _CTYPE_U|_CTYPE_R|_CTYPE_G|_CTYPE_A,
1320d5acd74SJohn Marino _CTYPE_U|_CTYPE_R|_CTYPE_G|_CTYPE_A,
1330d5acd74SJohn Marino _CTYPE_U|_CTYPE_R|_CTYPE_G|_CTYPE_A,
1340d5acd74SJohn Marino _CTYPE_U|_CTYPE_R|_CTYPE_G|_CTYPE_A,
1350d5acd74SJohn Marino /*50*/ _CTYPE_U|_CTYPE_R|_CTYPE_G|_CTYPE_A,
1360d5acd74SJohn Marino _CTYPE_U|_CTYPE_R|_CTYPE_G|_CTYPE_A,
1370d5acd74SJohn Marino _CTYPE_U|_CTYPE_R|_CTYPE_G|_CTYPE_A,
1380d5acd74SJohn Marino _CTYPE_U|_CTYPE_R|_CTYPE_G|_CTYPE_A,
1390d5acd74SJohn Marino _CTYPE_U|_CTYPE_R|_CTYPE_G|_CTYPE_A,
1400d5acd74SJohn Marino _CTYPE_U|_CTYPE_R|_CTYPE_G|_CTYPE_A,
1410d5acd74SJohn Marino _CTYPE_U|_CTYPE_R|_CTYPE_G|_CTYPE_A,
1420d5acd74SJohn Marino _CTYPE_U|_CTYPE_R|_CTYPE_G|_CTYPE_A,
1430d5acd74SJohn Marino /*58*/ _CTYPE_U|_CTYPE_R|_CTYPE_G|_CTYPE_A,
1440d5acd74SJohn Marino _CTYPE_U|_CTYPE_R|_CTYPE_G|_CTYPE_A,
1450d5acd74SJohn Marino _CTYPE_U|_CTYPE_R|_CTYPE_G|_CTYPE_A,
1460d5acd74SJohn Marino _CTYPE_P|_CTYPE_R|_CTYPE_G,
1470d5acd74SJohn Marino _CTYPE_P|_CTYPE_R|_CTYPE_G,
1480d5acd74SJohn Marino _CTYPE_P|_CTYPE_R|_CTYPE_G,
1490d5acd74SJohn Marino _CTYPE_P|_CTYPE_R|_CTYPE_G,
1500d5acd74SJohn Marino _CTYPE_P|_CTYPE_R|_CTYPE_G,
1510d5acd74SJohn Marino /*60*/ _CTYPE_P|_CTYPE_R|_CTYPE_G,
1520d5acd74SJohn Marino _CTYPE_L|_CTYPE_X|_CTYPE_R|_CTYPE_G|_CTYPE_A|10,
1530d5acd74SJohn Marino _CTYPE_L|_CTYPE_X|_CTYPE_R|_CTYPE_G|_CTYPE_A|11,
1540d5acd74SJohn Marino _CTYPE_L|_CTYPE_X|_CTYPE_R|_CTYPE_G|_CTYPE_A|12,
1550d5acd74SJohn Marino _CTYPE_L|_CTYPE_X|_CTYPE_R|_CTYPE_G|_CTYPE_A|13,
1560d5acd74SJohn Marino _CTYPE_L|_CTYPE_X|_CTYPE_R|_CTYPE_G|_CTYPE_A|14,
1570d5acd74SJohn Marino _CTYPE_L|_CTYPE_X|_CTYPE_R|_CTYPE_G|_CTYPE_A|15,
1580d5acd74SJohn Marino _CTYPE_L|_CTYPE_R|_CTYPE_G|_CTYPE_A,
1590d5acd74SJohn Marino /*68*/ _CTYPE_L|_CTYPE_R|_CTYPE_G|_CTYPE_A,
1600d5acd74SJohn Marino _CTYPE_L|_CTYPE_R|_CTYPE_G|_CTYPE_A,
1610d5acd74SJohn Marino _CTYPE_L|_CTYPE_R|_CTYPE_G|_CTYPE_A,
1620d5acd74SJohn Marino _CTYPE_L|_CTYPE_R|_CTYPE_G|_CTYPE_A,
1630d5acd74SJohn Marino _CTYPE_L|_CTYPE_R|_CTYPE_G|_CTYPE_A,
1640d5acd74SJohn Marino _CTYPE_L|_CTYPE_R|_CTYPE_G|_CTYPE_A,
1650d5acd74SJohn Marino _CTYPE_L|_CTYPE_R|_CTYPE_G|_CTYPE_A,
1660d5acd74SJohn Marino _CTYPE_L|_CTYPE_R|_CTYPE_G|_CTYPE_A,
1670d5acd74SJohn Marino /*70*/ _CTYPE_L|_CTYPE_R|_CTYPE_G|_CTYPE_A,
1680d5acd74SJohn Marino _CTYPE_L|_CTYPE_R|_CTYPE_G|_CTYPE_A,
1690d5acd74SJohn Marino _CTYPE_L|_CTYPE_R|_CTYPE_G|_CTYPE_A,
1700d5acd74SJohn Marino _CTYPE_L|_CTYPE_R|_CTYPE_G|_CTYPE_A,
1710d5acd74SJohn Marino _CTYPE_L|_CTYPE_R|_CTYPE_G|_CTYPE_A,
1720d5acd74SJohn Marino _CTYPE_L|_CTYPE_R|_CTYPE_G|_CTYPE_A,
1730d5acd74SJohn Marino _CTYPE_L|_CTYPE_R|_CTYPE_G|_CTYPE_A,
1740d5acd74SJohn Marino _CTYPE_L|_CTYPE_R|_CTYPE_G|_CTYPE_A,
1750d5acd74SJohn Marino /*78*/ _CTYPE_L|_CTYPE_R|_CTYPE_G|_CTYPE_A,
1760d5acd74SJohn Marino _CTYPE_L|_CTYPE_R|_CTYPE_G|_CTYPE_A,
1770d5acd74SJohn Marino _CTYPE_L|_CTYPE_R|_CTYPE_G|_CTYPE_A,
1780d5acd74SJohn Marino _CTYPE_P|_CTYPE_R|_CTYPE_G,
1790d5acd74SJohn Marino _CTYPE_P|_CTYPE_R|_CTYPE_G,
1800d5acd74SJohn Marino _CTYPE_P|_CTYPE_R|_CTYPE_G,
1810d5acd74SJohn Marino _CTYPE_P|_CTYPE_R|_CTYPE_G,
1820d5acd74SJohn Marino _CTYPE_C,
1830d5acd74SJohn Marino },
184*6173c3dfSSascha Wildner .__maplower = {
185*6173c3dfSSascha Wildner 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
1860d5acd74SJohn Marino 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
1870d5acd74SJohn Marino 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
1880d5acd74SJohn Marino 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,
1890d5acd74SJohn Marino 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,
1900d5acd74SJohn Marino 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,
1910d5acd74SJohn Marino 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
1920d5acd74SJohn Marino 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,
1930d5acd74SJohn Marino 0x40, 'a', 'b', 'c', 'd', 'e', 'f', 'g',
1940d5acd74SJohn Marino 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o',
1950d5acd74SJohn Marino 'p', 'q', 'r', 's', 't', 'u', 'v', 'w',
1960d5acd74SJohn Marino 'x', 'y', 'z', 0x5b, 0x5c, 0x5d, 0x5e, 0x5f,
1970d5acd74SJohn Marino 0x60, 'a', 'b', 'c', 'd', 'e', 'f', 'g',
1980d5acd74SJohn Marino 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o',
1990d5acd74SJohn Marino 'p', 'q', 'r', 's', 't', 'u', 'v', 'w',
2000d5acd74SJohn Marino 'x', 'y', 'z', 0x7b, 0x7c, 0x7d, 0x7e, 0x7f,
2010d5acd74SJohn Marino 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,
2020d5acd74SJohn Marino 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f,
2030d5acd74SJohn Marino 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97,
2040d5acd74SJohn Marino 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f,
2050d5acd74SJohn Marino 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7,
2060d5acd74SJohn Marino 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf,
2070d5acd74SJohn Marino 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7,
2080d5acd74SJohn Marino 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf,
2090d5acd74SJohn Marino 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7,
2100d5acd74SJohn Marino 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf,
2110d5acd74SJohn Marino 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7,
2120d5acd74SJohn Marino 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf,
2130d5acd74SJohn Marino 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7,
2140d5acd74SJohn Marino 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef,
2150d5acd74SJohn Marino 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7,
2160d5acd74SJohn Marino 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff,
2170d5acd74SJohn Marino },
218*6173c3dfSSascha Wildner .__mapupper = {
219*6173c3dfSSascha Wildner 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
2200d5acd74SJohn Marino 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
2210d5acd74SJohn Marino 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
2220d5acd74SJohn Marino 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,
2230d5acd74SJohn Marino 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,
2240d5acd74SJohn Marino 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,
2250d5acd74SJohn Marino 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
2260d5acd74SJohn Marino 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,
2270d5acd74SJohn Marino 0x40, 'A', 'B', 'C', 'D', 'E', 'F', 'G',
2280d5acd74SJohn Marino 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O',
2290d5acd74SJohn Marino 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W',
2300d5acd74SJohn Marino 'X', 'Y', 'Z', 0x5b, 0x5c, 0x5d, 0x5e, 0x5f,
2310d5acd74SJohn Marino 0x60, 'A', 'B', 'C', 'D', 'E', 'F', 'G',
2320d5acd74SJohn Marino 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O',
2330d5acd74SJohn Marino 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W',
2340d5acd74SJohn Marino 'X', 'Y', 'Z', 0x7b, 0x7c, 0x7d, 0x7e, 0x7f,
2350d5acd74SJohn Marino 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,
2360d5acd74SJohn Marino 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f,
2370d5acd74SJohn Marino 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97,
2380d5acd74SJohn Marino 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f,
2390d5acd74SJohn Marino 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7,
2400d5acd74SJohn Marino 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf,
2410d5acd74SJohn Marino 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7,
2420d5acd74SJohn Marino 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf,
2430d5acd74SJohn Marino 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7,
2440d5acd74SJohn Marino 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf,
2450d5acd74SJohn Marino 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7,
2460d5acd74SJohn Marino 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf,
2470d5acd74SJohn Marino 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7,
2480d5acd74SJohn Marino 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef,
2490d5acd74SJohn Marino 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7,
2500d5acd74SJohn Marino 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff,
251*6173c3dfSSascha Wildner }
2520d5acd74SJohn Marino };
2530d5acd74SJohn Marino
2540d5acd74SJohn Marino #undef _CurrentRuneLocale
2550d5acd74SJohn Marino const _RuneLocale *_CurrentRuneLocale = &_DefaultRuneLocale;
2560d5acd74SJohn Marino
2570d5acd74SJohn Marino _RuneLocale *
__runes_for_locale(locale_t locale,int * mb_sb_limit)2580d5acd74SJohn Marino __runes_for_locale(locale_t locale, int *mb_sb_limit)
2590d5acd74SJohn Marino {
2600d5acd74SJohn Marino FIX_LOCALE(locale);
2610d5acd74SJohn Marino struct xlocale_ctype *c = XLOCALE_CTYPE(locale);
2620d5acd74SJohn Marino *mb_sb_limit = c->__mb_sb_limit;
2630d5acd74SJohn Marino return c->runes;
2640d5acd74SJohn Marino }
265