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