xref: /csrg-svn/lib/libc/locale/table.c (revision 63598)
160474Sbostic /*-
2*63598Sbostic  * Copyright (c) 1993
3*63598Sbostic  *	The Regents of the University of California.  All rights reserved.
460474Sbostic  *
560474Sbostic  * This code is derived from software contributed to Berkeley by
660474Sbostic  * Paul Borman at Krystal Technologies.
760474Sbostic  *
860474Sbostic  * %sccs.include.redist.c%
960474Sbostic  */
1060474Sbostic 
1160474Sbostic #if defined(LIBC_SCCS) && !defined(lint)
12*63598Sbostic static char sccsid[] = "@(#)table.c	8.1 (Berkeley) 06/27/93";
1360474Sbostic #endif /* LIBC_SCCS and not lint */
1460474Sbostic 
1560474Sbostic #include <sys/types.h>
1660474Sbostic 
1760474Sbostic #include <ctype.h>
1860474Sbostic #include <rune.h>
1960474Sbostic 
2060474Sbostic extern rune_t	_none_sgetrune __P((const char *, size_t, char const **));
2160474Sbostic extern int	_none_sputrune __P((rune_t, char *, size_t, char **));
2260474Sbostic extern int	_none_init __P((char *, char **));
2360474Sbostic 
2460474Sbostic _RuneLocale _DefaultRuneLocale = {
2560474Sbostic     _RUNE_MAGIC_1,
2660474Sbostic     "none",
2760474Sbostic     _none_sgetrune,
2860474Sbostic     _none_sputrune,
2960474Sbostic     0xFFFD,
3060474Sbostic 
3160474Sbostic     {	/*00*/	_C,		_C,		_C,		_C,
3260474Sbostic 		_C,		_C,		_C,		_C,
3360474Sbostic 	/*08*/	_C,		_C|_S|_B,	_C|_S,		_C|_S,
3460474Sbostic 		_C|_S,		_C|_S,		_C,		_C,
3560474Sbostic 	/*10*/	_C,		_C,		_C,		_C,
3660474Sbostic 		_C,		_C,		_C,		_C,
3760474Sbostic 	/*18*/	_C,		_C,		_C,		_C,
3860474Sbostic 		_C,		_C,		_C,		_C,
3960474Sbostic 	/*20*/	_S|_B|_R,	_P|_R|_G,	_P|_R|_G,	_P|_R|_G,
4060474Sbostic 		_P|_R|_G,	_P|_R|_G,	_P|_R|_G,	_P|_R|_G,
4160474Sbostic 	/*28*/	_P|_R|_G,	_P|_R|_G,	_P|_R|_G,	_P|_R|_G,
4260474Sbostic 		_P|_R|_G,	_P|_R|_G,	_P|_R|_G,	_P|_R|_G,
4360474Sbostic 	/*30*/	_D|_R|_G|_X|0,	_D|_R|_G|_X|1,	_D|_R|_G|_X|2,	_D|_R|_G|_X|3,
4460474Sbostic 		_D|_R|_G|_X|4,	_D|_R|_G|_X|5,	_D|_R|_G|_X|6,	_D|_R|_G|_X|7,
4560474Sbostic 	/*38*/	_D|_R|_G|_X|8,	_D|_R|_G|_X|9,	_P|_R|_G,	_P|_R|_G,
4660474Sbostic 		_P|_R|_G,	_P|_R|_G,	_P|_R|_G,	_P|_R|_G,
4760474Sbostic 	/*40*/	_P|_R|_G, _U|_X|_R|_G|_A|10, _U|_X|_R|_G|_A|11, _U|_X|_R|_G|_A|12,
4860474Sbostic 		_U|_X|_R|_G|_A|13, _U|_X|_R|_G|_A|14, _U|_X|_R|_G|_A|15, _U|_R|_G|_A,
4960474Sbostic 	/*48*/	_U|_R|_G|_A,	_U|_R|_G|_A,	_U|_R|_G|_A,	_U|_R|_G|_A,
5060474Sbostic 		_U|_R|_G|_A,	_U|_R|_G|_A,	_U|_R|_G|_A,	_U|_R|_G|_A,
5160474Sbostic 	/*50*/	_U|_R|_G|_A,	_U|_R|_G|_A,	_U|_R|_G|_A,	_U|_R|_G|_A,
5260474Sbostic 		_U|_R|_G|_A,	_U|_R|_G|_A,	_U|_R|_G|_A,	_U|_R|_G|_A,
5360474Sbostic 	/*58*/	_U|_R|_G|_A,	_U|_R|_G|_A,	_U|_R|_G|_A,	_P|_R|_G,
5460474Sbostic 		_P|_R|_G,	_P|_R|_G,	_P|_R|_G,	_P|_R|_G,
5560474Sbostic 	/*60*/	_P|_R|_G, _L|_X|_R|_G|_A|10, _L|_X|_R|_G|_A|11, _L|_X|_R|_G|_A|12,
5660474Sbostic 		_L|_X|_R|_G|_A|13, _L|_X|_R|_G|_A|14, _L|_X|_R|_G|_A|15, _L|_R|_G|_A,
5760474Sbostic 	/*68*/	_L|_R|_G|_A,	_L|_R|_G|_A,	_L|_R|_G|_A,	_L|_R|_G|_A,
5860474Sbostic 		_L|_R|_G|_A,	_L|_R|_G|_A,	_L|_R|_G|_A,	_L|_R|_G|_A,
5960474Sbostic 	/*70*/	_L|_R|_G|_A,	_L|_R|_G|_A,	_L|_R|_G|_A,	_L|_R|_G|_A,
6060474Sbostic 		_L|_R|_G|_A,	_L|_R|_G|_A,	_L|_R|_G|_A,	_L|_R|_G|_A,
6160474Sbostic 	/*78*/	_L|_R|_G|_A,	_L|_R|_G|_A,	_L|_R|_G|_A,	_P|_R|_G,
6260474Sbostic 		_P|_R|_G,	_P|_R|_G,	_P|_R|_G,	_C,
6360474Sbostic     },
6460474Sbostic     {	0x00,	0x01,	0x02,	0x03,	0x04,	0x05,	0x06,	0x07,
6560474Sbostic      	0x08,	0x09,	0x0a,	0x0b,	0x0c,	0x0d,	0x0e,	0x0f,
6660474Sbostic 	0x10,	0x11,	0x12,	0x13,	0x14,	0x15,	0x16,	0x17,
6760474Sbostic      	0x18,	0x19,	0x1a,	0x1b,	0x1c,	0x1d,	0x1e,	0x1f,
6860474Sbostic 	0x20,	0x21,	0x22,	0x23,	0x24,	0x25,	0x26,	0x27,
6960474Sbostic      	0x28,	0x29,	0x2a,	0x2b,	0x2c,	0x2d,	0x2e,	0x2f,
7060474Sbostic 	0x30,	0x31,	0x32,	0x33,	0x34,	0x35,	0x36,	0x37,
7160474Sbostic      	0x38,	0x39,	0x3a,	0x3b,	0x3c,	0x3d,	0x3e,	0x3f,
7260474Sbostic 	0x40,	'a',	'b',	'c',	'd',	'e',	'f',	'g',
7360474Sbostic      	'h',	'i',	'j',	'k',	'l',	'm',	'n',	'o',
7460474Sbostic 	'p',	'q',	'r',	's',	't',	'u',	'v',	'w',
7560474Sbostic      	'x',	'y',	'z',	0x5b,	0x5c,	0x5d,	0x5e,	0x5f,
7660474Sbostic 	0x60,	'a',	'b',	'c',	'd',	'e',	'f',	'g',
7760474Sbostic      	'h',	'i',	'j',	'k',	'l',	'm',	'n',	'o',
7860474Sbostic 	'p',	'q',	'r',	's',	't',	'u',	'v',	'w',
7960474Sbostic      	'x',	'y',	'z',	0x7b,	0x7c,	0x7d,	0x7e,	0x7f,
8060474Sbostic 	0x80,	0x81,	0x82,	0x83,	0x84,	0x85,	0x86,	0x87,
8160474Sbostic      	0x88,	0x89,	0x8a,	0x8b,	0x8c,	0x8d,	0x8e,	0x8f,
8260474Sbostic 	0x90,	0x91,	0x92,	0x93,	0x94,	0x95,	0x96,	0x97,
8360474Sbostic      	0x98,	0x99,	0x9a,	0x9b,	0x9c,	0x9d,	0x9e,	0x9f,
8460474Sbostic 	0xa0,	0xa1,	0xa2,	0xa3,	0xa4,	0xa5,	0xa6,	0xa7,
8560474Sbostic      	0xa8,	0xa9,	0xaa,	0xab,	0xac,	0xad,	0xae,	0xaf,
8660474Sbostic 	0xb0,	0xb1,	0xb2,	0xb3,	0xb4,	0xb5,	0xb6,	0xb7,
8760474Sbostic      	0xb8,	0xb9,	0xba,	0xbb,	0xbc,	0xbd,	0xbe,	0xbf,
8860474Sbostic 	0xc0,	0xc1,	0xc2,	0xc3,	0xc4,	0xc5,	0xc6,	0xc7,
8960474Sbostic      	0xc8,	0xc9,	0xca,	0xcb,	0xcc,	0xcd,	0xce,	0xcf,
9060474Sbostic 	0xd0,	0xd1,	0xd2,	0xd3,	0xd4,	0xd5,	0xd6,	0xd7,
9160474Sbostic      	0xd8,	0xd9,	0xda,	0xdb,	0xdc,	0xdd,	0xde,	0xdf,
9260474Sbostic 	0xe0,	0xe1,	0xe2,	0xe3,	0xe4,	0xe5,	0xe6,	0xe7,
9360474Sbostic      	0xe8,	0xe9,	0xea,	0xeb,	0xec,	0xed,	0xee,	0xef,
9460474Sbostic 	0xf0,	0xf1,	0xf2,	0xf3,	0xf4,	0xf5,	0xf6,	0xf7,
9560474Sbostic      	0xf8,	0xf9,	0xfa,	0xfb,	0xfc,	0xfd,	0xfe,	0xff,
9660474Sbostic     },
9760474Sbostic     {	0x00,	0x01,	0x02,	0x03,	0x04,	0x05,	0x06,	0x07,
9860474Sbostic      	0x08,	0x09,	0x0a,	0x0b,	0x0c,	0x0d,	0x0e,	0x0f,
9960474Sbostic 	0x10,	0x11,	0x12,	0x13,	0x14,	0x15,	0x16,	0x17,
10060474Sbostic      	0x18,	0x19,	0x1a,	0x1b,	0x1c,	0x1d,	0x1e,	0x1f,
10160474Sbostic 	0x20,	0x21,	0x22,	0x23,	0x24,	0x25,	0x26,	0x27,
10260474Sbostic      	0x28,	0x29,	0x2a,	0x2b,	0x2c,	0x2d,	0x2e,	0x2f,
10360474Sbostic 	0x30,	0x31,	0x32,	0x33,	0x34,	0x35,	0x36,	0x37,
10460474Sbostic      	0x38,	0x39,	0x3a,	0x3b,	0x3c,	0x3d,	0x3e,	0x3f,
10560474Sbostic 	0x40,	'A',	'B',	'C',	'D',	'E',	'F',	'G',
10660474Sbostic      	'H',	'I',	'J',	'K',	'L',	'M',	'N',	'O',
10760474Sbostic 	'P',	'Q',	'R',	'S',	'T',	'U',	'V',	'W',
10860474Sbostic      	'X',	'Y',	'Z',	0x5b,	0x5c,	0x5d,	0x5e,	0x5f,
10960474Sbostic 	0x60,	'A',	'B',	'C',	'D',	'E',	'F',	'G',
11060474Sbostic      	'H',	'I',	'J',	'K',	'L',	'M',	'N',	'O',
11160474Sbostic 	'P',	'Q',	'R',	'S',	'T',	'U',	'V',	'W',
11260474Sbostic      	'X',	'Y',	'Z',	0x7b,	0x7c,	0x7d,	0x7e,	0x7f,
11360474Sbostic 	0x80,	0x81,	0x82,	0x83,	0x84,	0x85,	0x86,	0x87,
11460474Sbostic      	0x88,	0x89,	0x8a,	0x8b,	0x8c,	0x8d,	0x8e,	0x8f,
11560474Sbostic 	0x90,	0x91,	0x92,	0x93,	0x94,	0x95,	0x96,	0x97,
11660474Sbostic      	0x98,	0x99,	0x9a,	0x9b,	0x9c,	0x9d,	0x9e,	0x9f,
11760474Sbostic 	0xa0,	0xa1,	0xa2,	0xa3,	0xa4,	0xa5,	0xa6,	0xa7,
11860474Sbostic      	0xa8,	0xa9,	0xaa,	0xab,	0xac,	0xad,	0xae,	0xaf,
11960474Sbostic 	0xb0,	0xb1,	0xb2,	0xb3,	0xb4,	0xb5,	0xb6,	0xb7,
12060474Sbostic      	0xb8,	0xb9,	0xba,	0xbb,	0xbc,	0xbd,	0xbe,	0xbf,
12160474Sbostic 	0xc0,	0xc1,	0xc2,	0xc3,	0xc4,	0xc5,	0xc6,	0xc7,
12260474Sbostic      	0xc8,	0xc9,	0xca,	0xcb,	0xcc,	0xcd,	0xce,	0xcf,
12360474Sbostic 	0xd0,	0xd1,	0xd2,	0xd3,	0xd4,	0xd5,	0xd6,	0xd7,
12460474Sbostic      	0xd8,	0xd9,	0xda,	0xdb,	0xdc,	0xdd,	0xde,	0xdf,
12560474Sbostic 	0xe0,	0xe1,	0xe2,	0xe3,	0xe4,	0xe5,	0xe6,	0xe7,
12660474Sbostic      	0xe8,	0xe9,	0xea,	0xeb,	0xec,	0xed,	0xee,	0xef,
12760474Sbostic 	0xf0,	0xf1,	0xf2,	0xf3,	0xf4,	0xf5,	0xf6,	0xf7,
12860474Sbostic      	0xf8,	0xf9,	0xfa,	0xfb,	0xfc,	0xfd,	0xfe,	0xff,
12960474Sbostic     },
13060474Sbostic };
13160474Sbostic 
13260474Sbostic _RuneLocale *_CurrentRuneLocale = &_DefaultRuneLocale;
13360474Sbostic 
13460474Sbostic int __mb_cur_max = 1;
135