xref: /dflybsd-src/lib/libc/locale/table.c (revision c66c7e2fb8d0d28477d550f1d2a50c4677d547ff)
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.
21*c66c7e2fSzrj  * 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 = {
480d5acd74SJohn Marino     _RUNE_MAGIC_1,
490d5acd74SJohn Marino     "NONE",
500d5acd74SJohn Marino     NULL,
510d5acd74SJohn Marino     NULL,
520d5acd74SJohn Marino     0xFFFD,
530d5acd74SJohn Marino 
540d5acd74SJohn Marino     {	/*00*/	_CTYPE_C,
550d5acd74SJohn Marino 		_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 	/*08*/	_CTYPE_C,
630d5acd74SJohn Marino 		_CTYPE_C|_CTYPE_S|_CTYPE_B,
640d5acd74SJohn Marino 		_CTYPE_C|_CTYPE_S,
650d5acd74SJohn Marino 		_CTYPE_C|_CTYPE_S,
660d5acd74SJohn Marino 		_CTYPE_C|_CTYPE_S,
670d5acd74SJohn Marino 		_CTYPE_C|_CTYPE_S,
680d5acd74SJohn Marino 		_CTYPE_C,
690d5acd74SJohn Marino 		_CTYPE_C,
700d5acd74SJohn Marino 	/*10*/	_CTYPE_C,
710d5acd74SJohn Marino 		_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 	/*18*/	_CTYPE_C,
790d5acd74SJohn Marino 		_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 	/*20*/	_CTYPE_S|_CTYPE_B|_CTYPE_R,
870d5acd74SJohn Marino 		_CTYPE_P|_CTYPE_R|_CTYPE_G,
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 	/*28*/	_CTYPE_P|_CTYPE_R|_CTYPE_G,
950d5acd74SJohn Marino 		_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,
10231c9f6f2SJohn Marino 	/*30*/	_CTYPE_D|_CTYPE_R|_CTYPE_G|_CTYPE_X|_CTYPE_N|0,
10331c9f6f2SJohn Marino 		_CTYPE_D|_CTYPE_R|_CTYPE_G|_CTYPE_X|_CTYPE_N|1,
10431c9f6f2SJohn Marino 		_CTYPE_D|_CTYPE_R|_CTYPE_G|_CTYPE_X|_CTYPE_N|2,
10531c9f6f2SJohn Marino 		_CTYPE_D|_CTYPE_R|_CTYPE_G|_CTYPE_X|_CTYPE_N|3,
10631c9f6f2SJohn Marino 		_CTYPE_D|_CTYPE_R|_CTYPE_G|_CTYPE_X|_CTYPE_N|4,
10731c9f6f2SJohn Marino 		_CTYPE_D|_CTYPE_R|_CTYPE_G|_CTYPE_X|_CTYPE_N|5,
10831c9f6f2SJohn Marino 		_CTYPE_D|_CTYPE_R|_CTYPE_G|_CTYPE_X|_CTYPE_N|6,
10931c9f6f2SJohn Marino 		_CTYPE_D|_CTYPE_R|_CTYPE_G|_CTYPE_X|_CTYPE_N|7,
11031c9f6f2SJohn Marino 	/*38*/	_CTYPE_D|_CTYPE_R|_CTYPE_G|_CTYPE_X|_CTYPE_N|8,
11131c9f6f2SJohn Marino 		_CTYPE_D|_CTYPE_R|_CTYPE_G|_CTYPE_X|_CTYPE_N|9,
1120d5acd74SJohn Marino 		_CTYPE_P|_CTYPE_R|_CTYPE_G,
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 	/*40*/	_CTYPE_P|_CTYPE_R|_CTYPE_G,
1190d5acd74SJohn Marino 		_CTYPE_U|_CTYPE_X|_CTYPE_R|_CTYPE_G|_CTYPE_A|10,
1200d5acd74SJohn Marino 		_CTYPE_U|_CTYPE_X|_CTYPE_R|_CTYPE_G|_CTYPE_A|11,
1210d5acd74SJohn Marino 		_CTYPE_U|_CTYPE_X|_CTYPE_R|_CTYPE_G|_CTYPE_A|12,
1220d5acd74SJohn Marino 		_CTYPE_U|_CTYPE_X|_CTYPE_R|_CTYPE_G|_CTYPE_A|13,
1230d5acd74SJohn Marino 		_CTYPE_U|_CTYPE_X|_CTYPE_R|_CTYPE_G|_CTYPE_A|14,
1240d5acd74SJohn Marino 		_CTYPE_U|_CTYPE_X|_CTYPE_R|_CTYPE_G|_CTYPE_A|15,
1250d5acd74SJohn Marino 		_CTYPE_U|_CTYPE_R|_CTYPE_G|_CTYPE_A,
1260d5acd74SJohn Marino 	/*48*/	_CTYPE_U|_CTYPE_R|_CTYPE_G|_CTYPE_A,
1270d5acd74SJohn Marino 		_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 	/*50*/	_CTYPE_U|_CTYPE_R|_CTYPE_G|_CTYPE_A,
1350d5acd74SJohn Marino 		_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 	/*58*/	_CTYPE_U|_CTYPE_R|_CTYPE_G|_CTYPE_A,
1430d5acd74SJohn Marino 		_CTYPE_U|_CTYPE_R|_CTYPE_G|_CTYPE_A,
1440d5acd74SJohn Marino 		_CTYPE_U|_CTYPE_R|_CTYPE_G|_CTYPE_A,
1450d5acd74SJohn Marino 		_CTYPE_P|_CTYPE_R|_CTYPE_G,
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 	/*60*/	_CTYPE_P|_CTYPE_R|_CTYPE_G,
1510d5acd74SJohn Marino 		_CTYPE_L|_CTYPE_X|_CTYPE_R|_CTYPE_G|_CTYPE_A|10,
1520d5acd74SJohn Marino 		_CTYPE_L|_CTYPE_X|_CTYPE_R|_CTYPE_G|_CTYPE_A|11,
1530d5acd74SJohn Marino 		_CTYPE_L|_CTYPE_X|_CTYPE_R|_CTYPE_G|_CTYPE_A|12,
1540d5acd74SJohn Marino 		_CTYPE_L|_CTYPE_X|_CTYPE_R|_CTYPE_G|_CTYPE_A|13,
1550d5acd74SJohn Marino 		_CTYPE_L|_CTYPE_X|_CTYPE_R|_CTYPE_G|_CTYPE_A|14,
1560d5acd74SJohn Marino 		_CTYPE_L|_CTYPE_X|_CTYPE_R|_CTYPE_G|_CTYPE_A|15,
1570d5acd74SJohn Marino 		_CTYPE_L|_CTYPE_R|_CTYPE_G|_CTYPE_A,
1580d5acd74SJohn Marino 	/*68*/	_CTYPE_L|_CTYPE_R|_CTYPE_G|_CTYPE_A,
1590d5acd74SJohn Marino 		_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 	/*70*/	_CTYPE_L|_CTYPE_R|_CTYPE_G|_CTYPE_A,
1670d5acd74SJohn Marino 		_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 	/*78*/	_CTYPE_L|_CTYPE_R|_CTYPE_G|_CTYPE_A,
1750d5acd74SJohn Marino 		_CTYPE_L|_CTYPE_R|_CTYPE_G|_CTYPE_A,
1760d5acd74SJohn Marino 		_CTYPE_L|_CTYPE_R|_CTYPE_G|_CTYPE_A,
1770d5acd74SJohn Marino 		_CTYPE_P|_CTYPE_R|_CTYPE_G,
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_C,
1820d5acd74SJohn Marino     },
1830d5acd74SJohn Marino     {	0x00,	0x01,	0x02,	0x03,	0x04,	0x05,	0x06,	0x07,
1840d5acd74SJohn Marino      	0x08,	0x09,	0x0a,	0x0b,	0x0c,	0x0d,	0x0e,	0x0f,
1850d5acd74SJohn Marino 	0x10,	0x11,	0x12,	0x13,	0x14,	0x15,	0x16,	0x17,
1860d5acd74SJohn Marino      	0x18,	0x19,	0x1a,	0x1b,	0x1c,	0x1d,	0x1e,	0x1f,
1870d5acd74SJohn Marino 	0x20,	0x21,	0x22,	0x23,	0x24,	0x25,	0x26,	0x27,
1880d5acd74SJohn Marino      	0x28,	0x29,	0x2a,	0x2b,	0x2c,	0x2d,	0x2e,	0x2f,
1890d5acd74SJohn Marino 	0x30,	0x31,	0x32,	0x33,	0x34,	0x35,	0x36,	0x37,
1900d5acd74SJohn Marino      	0x38,	0x39,	0x3a,	0x3b,	0x3c,	0x3d,	0x3e,	0x3f,
1910d5acd74SJohn Marino 	0x40,	'a',	'b',	'c',	'd',	'e',	'f',	'g',
1920d5acd74SJohn Marino      	'h',	'i',	'j',	'k',	'l',	'm',	'n',	'o',
1930d5acd74SJohn Marino 	'p',	'q',	'r',	's',	't',	'u',	'v',	'w',
1940d5acd74SJohn Marino      	'x',	'y',	'z',	0x5b,	0x5c,	0x5d,	0x5e,	0x5f,
1950d5acd74SJohn Marino 	0x60,	'a',	'b',	'c',	'd',	'e',	'f',	'g',
1960d5acd74SJohn Marino      	'h',	'i',	'j',	'k',	'l',	'm',	'n',	'o',
1970d5acd74SJohn Marino 	'p',	'q',	'r',	's',	't',	'u',	'v',	'w',
1980d5acd74SJohn Marino      	'x',	'y',	'z',	0x7b,	0x7c,	0x7d,	0x7e,	0x7f,
1990d5acd74SJohn Marino 	0x80,	0x81,	0x82,	0x83,	0x84,	0x85,	0x86,	0x87,
2000d5acd74SJohn Marino      	0x88,	0x89,	0x8a,	0x8b,	0x8c,	0x8d,	0x8e,	0x8f,
2010d5acd74SJohn Marino 	0x90,	0x91,	0x92,	0x93,	0x94,	0x95,	0x96,	0x97,
2020d5acd74SJohn Marino      	0x98,	0x99,	0x9a,	0x9b,	0x9c,	0x9d,	0x9e,	0x9f,
2030d5acd74SJohn Marino 	0xa0,	0xa1,	0xa2,	0xa3,	0xa4,	0xa5,	0xa6,	0xa7,
2040d5acd74SJohn Marino      	0xa8,	0xa9,	0xaa,	0xab,	0xac,	0xad,	0xae,	0xaf,
2050d5acd74SJohn Marino 	0xb0,	0xb1,	0xb2,	0xb3,	0xb4,	0xb5,	0xb6,	0xb7,
2060d5acd74SJohn Marino      	0xb8,	0xb9,	0xba,	0xbb,	0xbc,	0xbd,	0xbe,	0xbf,
2070d5acd74SJohn Marino 	0xc0,	0xc1,	0xc2,	0xc3,	0xc4,	0xc5,	0xc6,	0xc7,
2080d5acd74SJohn Marino      	0xc8,	0xc9,	0xca,	0xcb,	0xcc,	0xcd,	0xce,	0xcf,
2090d5acd74SJohn Marino 	0xd0,	0xd1,	0xd2,	0xd3,	0xd4,	0xd5,	0xd6,	0xd7,
2100d5acd74SJohn Marino      	0xd8,	0xd9,	0xda,	0xdb,	0xdc,	0xdd,	0xde,	0xdf,
2110d5acd74SJohn Marino 	0xe0,	0xe1,	0xe2,	0xe3,	0xe4,	0xe5,	0xe6,	0xe7,
2120d5acd74SJohn Marino      	0xe8,	0xe9,	0xea,	0xeb,	0xec,	0xed,	0xee,	0xef,
2130d5acd74SJohn Marino 	0xf0,	0xf1,	0xf2,	0xf3,	0xf4,	0xf5,	0xf6,	0xf7,
2140d5acd74SJohn Marino      	0xf8,	0xf9,	0xfa,	0xfb,	0xfc,	0xfd,	0xfe,	0xff,
2150d5acd74SJohn Marino     },
2160d5acd74SJohn Marino     {	0x00,	0x01,	0x02,	0x03,	0x04,	0x05,	0x06,	0x07,
2170d5acd74SJohn Marino      	0x08,	0x09,	0x0a,	0x0b,	0x0c,	0x0d,	0x0e,	0x0f,
2180d5acd74SJohn Marino 	0x10,	0x11,	0x12,	0x13,	0x14,	0x15,	0x16,	0x17,
2190d5acd74SJohn Marino      	0x18,	0x19,	0x1a,	0x1b,	0x1c,	0x1d,	0x1e,	0x1f,
2200d5acd74SJohn Marino 	0x20,	0x21,	0x22,	0x23,	0x24,	0x25,	0x26,	0x27,
2210d5acd74SJohn Marino      	0x28,	0x29,	0x2a,	0x2b,	0x2c,	0x2d,	0x2e,	0x2f,
2220d5acd74SJohn Marino 	0x30,	0x31,	0x32,	0x33,	0x34,	0x35,	0x36,	0x37,
2230d5acd74SJohn Marino      	0x38,	0x39,	0x3a,	0x3b,	0x3c,	0x3d,	0x3e,	0x3f,
2240d5acd74SJohn Marino 	0x40,	'A',	'B',	'C',	'D',	'E',	'F',	'G',
2250d5acd74SJohn Marino      	'H',	'I',	'J',	'K',	'L',	'M',	'N',	'O',
2260d5acd74SJohn Marino 	'P',	'Q',	'R',	'S',	'T',	'U',	'V',	'W',
2270d5acd74SJohn Marino      	'X',	'Y',	'Z',	0x5b,	0x5c,	0x5d,	0x5e,	0x5f,
2280d5acd74SJohn Marino 	0x60,	'A',	'B',	'C',	'D',	'E',	'F',	'G',
2290d5acd74SJohn Marino      	'H',	'I',	'J',	'K',	'L',	'M',	'N',	'O',
2300d5acd74SJohn Marino 	'P',	'Q',	'R',	'S',	'T',	'U',	'V',	'W',
2310d5acd74SJohn Marino      	'X',	'Y',	'Z',	0x7b,	0x7c,	0x7d,	0x7e,	0x7f,
2320d5acd74SJohn Marino 	0x80,	0x81,	0x82,	0x83,	0x84,	0x85,	0x86,	0x87,
2330d5acd74SJohn Marino      	0x88,	0x89,	0x8a,	0x8b,	0x8c,	0x8d,	0x8e,	0x8f,
2340d5acd74SJohn Marino 	0x90,	0x91,	0x92,	0x93,	0x94,	0x95,	0x96,	0x97,
2350d5acd74SJohn Marino      	0x98,	0x99,	0x9a,	0x9b,	0x9c,	0x9d,	0x9e,	0x9f,
2360d5acd74SJohn Marino 	0xa0,	0xa1,	0xa2,	0xa3,	0xa4,	0xa5,	0xa6,	0xa7,
2370d5acd74SJohn Marino      	0xa8,	0xa9,	0xaa,	0xab,	0xac,	0xad,	0xae,	0xaf,
2380d5acd74SJohn Marino 	0xb0,	0xb1,	0xb2,	0xb3,	0xb4,	0xb5,	0xb6,	0xb7,
2390d5acd74SJohn Marino      	0xb8,	0xb9,	0xba,	0xbb,	0xbc,	0xbd,	0xbe,	0xbf,
2400d5acd74SJohn Marino 	0xc0,	0xc1,	0xc2,	0xc3,	0xc4,	0xc5,	0xc6,	0xc7,
2410d5acd74SJohn Marino      	0xc8,	0xc9,	0xca,	0xcb,	0xcc,	0xcd,	0xce,	0xcf,
2420d5acd74SJohn Marino 	0xd0,	0xd1,	0xd2,	0xd3,	0xd4,	0xd5,	0xd6,	0xd7,
2430d5acd74SJohn Marino      	0xd8,	0xd9,	0xda,	0xdb,	0xdc,	0xdd,	0xde,	0xdf,
2440d5acd74SJohn Marino 	0xe0,	0xe1,	0xe2,	0xe3,	0xe4,	0xe5,	0xe6,	0xe7,
2450d5acd74SJohn Marino      	0xe8,	0xe9,	0xea,	0xeb,	0xec,	0xed,	0xee,	0xef,
2460d5acd74SJohn Marino 	0xf0,	0xf1,	0xf2,	0xf3,	0xf4,	0xf5,	0xf6,	0xf7,
2470d5acd74SJohn Marino      	0xf8,	0xf9,	0xfa,	0xfb,	0xfc,	0xfd,	0xfe,	0xff,
2480d5acd74SJohn Marino     },
2490d5acd74SJohn Marino };
2500d5acd74SJohn Marino 
2510d5acd74SJohn Marino #undef _CurrentRuneLocale
2520d5acd74SJohn Marino const _RuneLocale *_CurrentRuneLocale = &_DefaultRuneLocale;
2530d5acd74SJohn Marino 
2540d5acd74SJohn Marino _RuneLocale *
2550d5acd74SJohn Marino __runes_for_locale(locale_t locale, int *mb_sb_limit)
2560d5acd74SJohn Marino {
2570d5acd74SJohn Marino 	FIX_LOCALE(locale);
2580d5acd74SJohn Marino 	struct xlocale_ctype *c = XLOCALE_CTYPE(locale);
2590d5acd74SJohn Marino 	*mb_sb_limit = c->__mb_sb_limit;
2600d5acd74SJohn Marino 	return c->runes;
2610d5acd74SJohn Marino }
262