Home | History | Annotate | Line # | Download | only in locale
runetable.c revision 1.11
      1 /*	$NetBSD: runetable.c,v 1.11 2003/03/05 20:18:16 tshiozak Exp $	*/
      2 
      3 /*-
      4  * Copyright (c) 1993
      5  *	The Regents of the University of California.  All rights reserved.
      6  *
      7  * This code is derived from software contributed to Berkeley by
      8  * Paul Borman at Krystal Technologies.
      9  *
     10  * Redistribution and use in source and binary forms, with or without
     11  * modification, are permitted provided that the following conditions
     12  * are met:
     13  * 1. Redistributions of source code must retain the above copyright
     14  *    notice, this list of conditions and the following disclaimer.
     15  * 2. Redistributions in binary form must reproduce the above copyright
     16  *    notice, this list of conditions and the following disclaimer in the
     17  *    documentation and/or other materials provided with the distribution.
     18  * 3. All advertising materials mentioning features or use of this software
     19  *    must display the following acknowledgement:
     20  *	This product includes software developed by the University of
     21  *	California, Berkeley and its contributors.
     22  * 4. Neither the name of the University nor the names of its contributors
     23  *    may be used to endorse or promote products derived from this software
     24  *    without specific prior written permission.
     25  *
     26  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
     27  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
     28  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
     29  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
     30  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
     31  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
     32  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
     33  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
     34  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
     35  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
     36  * SUCH DAMAGE.
     37  *
     38  * $FreeBSD: src/lib/libc/locale/table.c,v 1.13 2000/02/08 07:43:25 obrien Exp $
     39  */
     40 
     41 #include <sys/cdefs.h>
     42 #if defined(LIBC_SCCS) && !defined(lint)
     43 #if 0
     44 static char sccsid[] = "@(#)table.c	8.1 (Berkeley) 6/27/93";
     45 #else
     46 __RCSID("$NetBSD: runetable.c,v 1.11 2003/03/05 20:18:16 tshiozak Exp $");
     47 #endif
     48 #endif /* LIBC_SCCS and not lint */
     49 
     50 #include <stdlib.h>
     51 #include <ctype.h>
     52 #include <locale.h>
     53 #include <assert.h>
     54 #include <wchar.h>
     55 #include <citrus/citrus_module.h>
     56 #include <citrus/citrus_ctype.h>
     57 #include "rune.h"
     58 #include "rune_local.h"
     59 #include <stdlib.h>
     60 
     61 _RuneLocale _DefaultRuneLocale = {
     62     _RUNE_MAGIC_1,
     63     "NONE",
     64     _DEFAULT_INVALID_RUNE,
     65 
     66     {	/*00*/	_CTYPE_C,
     67 		_CTYPE_C,
     68 		_CTYPE_C,
     69 		_CTYPE_C,
     70 		_CTYPE_C,
     71 		_CTYPE_C,
     72 		_CTYPE_C,
     73 		_CTYPE_C,
     74 	/*08*/	_CTYPE_C,
     75 		_CTYPE_C|_CTYPE_S|_CTYPE_B,
     76 		_CTYPE_C|_CTYPE_S,
     77 		_CTYPE_C|_CTYPE_S,
     78 		_CTYPE_C|_CTYPE_S,
     79 		_CTYPE_C|_CTYPE_S,
     80 		_CTYPE_C,
     81 		_CTYPE_C,
     82 	/*10*/	_CTYPE_C,
     83 		_CTYPE_C,
     84 		_CTYPE_C,
     85 		_CTYPE_C,
     86 		_CTYPE_C,
     87 		_CTYPE_C,
     88 		_CTYPE_C,
     89 		_CTYPE_C,
     90 	/*18*/	_CTYPE_C,
     91 		_CTYPE_C,
     92 		_CTYPE_C,
     93 		_CTYPE_C,
     94 		_CTYPE_C,
     95 		_CTYPE_C,
     96 		_CTYPE_C,
     97 		_CTYPE_C,
     98 	/*20*/	_CTYPE_S|_CTYPE_B|_CTYPE_R|_CTYPE_SW1,
     99 		_CTYPE_P|_CTYPE_R|_CTYPE_G|_CTYPE_SW1,
    100 		_CTYPE_P|_CTYPE_R|_CTYPE_G|_CTYPE_SW1,
    101 		_CTYPE_P|_CTYPE_R|_CTYPE_G|_CTYPE_SW1,
    102 		_CTYPE_P|_CTYPE_R|_CTYPE_G|_CTYPE_SW1,
    103 		_CTYPE_P|_CTYPE_R|_CTYPE_G|_CTYPE_SW1,
    104 		_CTYPE_P|_CTYPE_R|_CTYPE_G|_CTYPE_SW1,
    105 		_CTYPE_P|_CTYPE_R|_CTYPE_G|_CTYPE_SW1,
    106 	/*28*/	_CTYPE_P|_CTYPE_R|_CTYPE_G|_CTYPE_SW1,
    107 		_CTYPE_P|_CTYPE_R|_CTYPE_G|_CTYPE_SW1,
    108 		_CTYPE_P|_CTYPE_R|_CTYPE_G|_CTYPE_SW1,
    109 		_CTYPE_P|_CTYPE_R|_CTYPE_G|_CTYPE_SW1,
    110 		_CTYPE_P|_CTYPE_R|_CTYPE_G|_CTYPE_SW1,
    111 		_CTYPE_P|_CTYPE_R|_CTYPE_G|_CTYPE_SW1,
    112 		_CTYPE_P|_CTYPE_R|_CTYPE_G|_CTYPE_SW1,
    113 		_CTYPE_P|_CTYPE_R|_CTYPE_G|_CTYPE_SW1,
    114 	/*30*/	_CTYPE_D|_CTYPE_R|_CTYPE_G|_CTYPE_X|_CTYPE_SW1|0,
    115 		_CTYPE_D|_CTYPE_R|_CTYPE_G|_CTYPE_X|_CTYPE_SW1|1,
    116 		_CTYPE_D|_CTYPE_R|_CTYPE_G|_CTYPE_X|_CTYPE_SW1|2,
    117 		_CTYPE_D|_CTYPE_R|_CTYPE_G|_CTYPE_X|_CTYPE_SW1|3,
    118 		_CTYPE_D|_CTYPE_R|_CTYPE_G|_CTYPE_X|_CTYPE_SW1|4,
    119 		_CTYPE_D|_CTYPE_R|_CTYPE_G|_CTYPE_X|_CTYPE_SW1|5,
    120 		_CTYPE_D|_CTYPE_R|_CTYPE_G|_CTYPE_X|_CTYPE_SW1|6,
    121 		_CTYPE_D|_CTYPE_R|_CTYPE_G|_CTYPE_X|_CTYPE_SW1|7,
    122 	/*38*/	_CTYPE_D|_CTYPE_R|_CTYPE_G|_CTYPE_X|_CTYPE_SW1|8,
    123 		_CTYPE_D|_CTYPE_R|_CTYPE_G|_CTYPE_X|_CTYPE_SW1|9,
    124 		_CTYPE_P|_CTYPE_R|_CTYPE_G|_CTYPE_SW1,
    125 		_CTYPE_P|_CTYPE_R|_CTYPE_G|_CTYPE_SW1,
    126 		_CTYPE_P|_CTYPE_R|_CTYPE_G|_CTYPE_SW1,
    127 		_CTYPE_P|_CTYPE_R|_CTYPE_G|_CTYPE_SW1,
    128 		_CTYPE_P|_CTYPE_R|_CTYPE_G|_CTYPE_SW1,
    129 		_CTYPE_P|_CTYPE_R|_CTYPE_G|_CTYPE_SW1,
    130 	/*40*/	_CTYPE_P|_CTYPE_R|_CTYPE_G|_CTYPE_SW1,
    131 		_CTYPE_U|_CTYPE_X|_CTYPE_R|_CTYPE_G|_CTYPE_A|_CTYPE_SW1|10,
    132 		_CTYPE_U|_CTYPE_X|_CTYPE_R|_CTYPE_G|_CTYPE_A|_CTYPE_SW1|11,
    133 		_CTYPE_U|_CTYPE_X|_CTYPE_R|_CTYPE_G|_CTYPE_A|_CTYPE_SW1|12,
    134 		_CTYPE_U|_CTYPE_X|_CTYPE_R|_CTYPE_G|_CTYPE_A|_CTYPE_SW1|13,
    135 		_CTYPE_U|_CTYPE_X|_CTYPE_R|_CTYPE_G|_CTYPE_A|_CTYPE_SW1|14,
    136 		_CTYPE_U|_CTYPE_X|_CTYPE_R|_CTYPE_G|_CTYPE_A|_CTYPE_SW1|15,
    137 		_CTYPE_U|_CTYPE_R|_CTYPE_G|_CTYPE_A|_CTYPE_SW1,
    138 	/*48*/	_CTYPE_U|_CTYPE_R|_CTYPE_G|_CTYPE_A|_CTYPE_SW1,
    139 		_CTYPE_U|_CTYPE_R|_CTYPE_G|_CTYPE_A|_CTYPE_SW1,
    140 		_CTYPE_U|_CTYPE_R|_CTYPE_G|_CTYPE_A|_CTYPE_SW1,
    141 		_CTYPE_U|_CTYPE_R|_CTYPE_G|_CTYPE_A|_CTYPE_SW1,
    142 		_CTYPE_U|_CTYPE_R|_CTYPE_G|_CTYPE_A|_CTYPE_SW1,
    143 		_CTYPE_U|_CTYPE_R|_CTYPE_G|_CTYPE_A|_CTYPE_SW1,
    144 		_CTYPE_U|_CTYPE_R|_CTYPE_G|_CTYPE_A|_CTYPE_SW1,
    145 		_CTYPE_U|_CTYPE_R|_CTYPE_G|_CTYPE_A|_CTYPE_SW1,
    146 	/*50*/	_CTYPE_U|_CTYPE_R|_CTYPE_G|_CTYPE_A|_CTYPE_SW1,
    147 		_CTYPE_U|_CTYPE_R|_CTYPE_G|_CTYPE_A|_CTYPE_SW1,
    148 		_CTYPE_U|_CTYPE_R|_CTYPE_G|_CTYPE_A|_CTYPE_SW1,
    149 		_CTYPE_U|_CTYPE_R|_CTYPE_G|_CTYPE_A|_CTYPE_SW1,
    150 		_CTYPE_U|_CTYPE_R|_CTYPE_G|_CTYPE_A|_CTYPE_SW1,
    151 		_CTYPE_U|_CTYPE_R|_CTYPE_G|_CTYPE_A|_CTYPE_SW1,
    152 		_CTYPE_U|_CTYPE_R|_CTYPE_G|_CTYPE_A|_CTYPE_SW1,
    153 		_CTYPE_U|_CTYPE_R|_CTYPE_G|_CTYPE_A|_CTYPE_SW1,
    154 	/*58*/	_CTYPE_U|_CTYPE_R|_CTYPE_G|_CTYPE_A|_CTYPE_SW1,
    155 		_CTYPE_U|_CTYPE_R|_CTYPE_G|_CTYPE_A|_CTYPE_SW1,
    156 		_CTYPE_U|_CTYPE_R|_CTYPE_G|_CTYPE_A|_CTYPE_SW1,
    157 		_CTYPE_P|_CTYPE_R|_CTYPE_G|_CTYPE_SW1,
    158 		_CTYPE_P|_CTYPE_R|_CTYPE_G|_CTYPE_SW1,
    159 		_CTYPE_P|_CTYPE_R|_CTYPE_G|_CTYPE_SW1,
    160 		_CTYPE_P|_CTYPE_R|_CTYPE_G|_CTYPE_SW1,
    161 		_CTYPE_P|_CTYPE_R|_CTYPE_G|_CTYPE_SW1,
    162 	/*60*/	_CTYPE_P|_CTYPE_R|_CTYPE_G|_CTYPE_SW1,
    163 		_CTYPE_L|_CTYPE_X|_CTYPE_R|_CTYPE_G|_CTYPE_A|_CTYPE_SW1|10,
    164 		_CTYPE_L|_CTYPE_X|_CTYPE_R|_CTYPE_G|_CTYPE_A|_CTYPE_SW1|11,
    165 		_CTYPE_L|_CTYPE_X|_CTYPE_R|_CTYPE_G|_CTYPE_A|_CTYPE_SW1|12,
    166 		_CTYPE_L|_CTYPE_X|_CTYPE_R|_CTYPE_G|_CTYPE_A|_CTYPE_SW1|13,
    167 		_CTYPE_L|_CTYPE_X|_CTYPE_R|_CTYPE_G|_CTYPE_A|_CTYPE_SW1|14,
    168 		_CTYPE_L|_CTYPE_X|_CTYPE_R|_CTYPE_G|_CTYPE_A|_CTYPE_SW1|15,
    169 		_CTYPE_L|_CTYPE_R|_CTYPE_G|_CTYPE_A|_CTYPE_SW1,
    170 	/*68*/	_CTYPE_L|_CTYPE_R|_CTYPE_G|_CTYPE_A|_CTYPE_SW1,
    171 		_CTYPE_L|_CTYPE_R|_CTYPE_G|_CTYPE_A|_CTYPE_SW1,
    172 		_CTYPE_L|_CTYPE_R|_CTYPE_G|_CTYPE_A|_CTYPE_SW1,
    173 		_CTYPE_L|_CTYPE_R|_CTYPE_G|_CTYPE_A|_CTYPE_SW1,
    174 		_CTYPE_L|_CTYPE_R|_CTYPE_G|_CTYPE_A|_CTYPE_SW1,
    175 		_CTYPE_L|_CTYPE_R|_CTYPE_G|_CTYPE_A|_CTYPE_SW1,
    176 		_CTYPE_L|_CTYPE_R|_CTYPE_G|_CTYPE_A|_CTYPE_SW1,
    177 		_CTYPE_L|_CTYPE_R|_CTYPE_G|_CTYPE_A|_CTYPE_SW1,
    178 	/*70*/	_CTYPE_L|_CTYPE_R|_CTYPE_G|_CTYPE_A|_CTYPE_SW1,
    179 		_CTYPE_L|_CTYPE_R|_CTYPE_G|_CTYPE_A|_CTYPE_SW1,
    180 		_CTYPE_L|_CTYPE_R|_CTYPE_G|_CTYPE_A|_CTYPE_SW1,
    181 		_CTYPE_L|_CTYPE_R|_CTYPE_G|_CTYPE_A|_CTYPE_SW1,
    182 		_CTYPE_L|_CTYPE_R|_CTYPE_G|_CTYPE_A|_CTYPE_SW1,
    183 		_CTYPE_L|_CTYPE_R|_CTYPE_G|_CTYPE_A|_CTYPE_SW1,
    184 		_CTYPE_L|_CTYPE_R|_CTYPE_G|_CTYPE_A|_CTYPE_SW1,
    185 		_CTYPE_L|_CTYPE_R|_CTYPE_G|_CTYPE_A|_CTYPE_SW1,
    186 	/*78*/	_CTYPE_L|_CTYPE_R|_CTYPE_G|_CTYPE_A|_CTYPE_SW1,
    187 		_CTYPE_L|_CTYPE_R|_CTYPE_G|_CTYPE_A|_CTYPE_SW1,
    188 		_CTYPE_L|_CTYPE_R|_CTYPE_G|_CTYPE_A|_CTYPE_SW1,
    189 		_CTYPE_P|_CTYPE_R|_CTYPE_G|_CTYPE_SW1,
    190 		_CTYPE_P|_CTYPE_R|_CTYPE_G|_CTYPE_SW1,
    191 		_CTYPE_P|_CTYPE_R|_CTYPE_G|_CTYPE_SW1,
    192 		_CTYPE_P|_CTYPE_R|_CTYPE_G|_CTYPE_SW1,
    193 		_CTYPE_C,
    194     },
    195     {	0x00,	0x01,	0x02,	0x03,	0x04,	0x05,	0x06,	0x07,
    196      	0x08,	0x09,	0x0a,	0x0b,	0x0c,	0x0d,	0x0e,	0x0f,
    197 	0x10,	0x11,	0x12,	0x13,	0x14,	0x15,	0x16,	0x17,
    198      	0x18,	0x19,	0x1a,	0x1b,	0x1c,	0x1d,	0x1e,	0x1f,
    199 	0x20,	0x21,	0x22,	0x23,	0x24,	0x25,	0x26,	0x27,
    200      	0x28,	0x29,	0x2a,	0x2b,	0x2c,	0x2d,	0x2e,	0x2f,
    201 	0x30,	0x31,	0x32,	0x33,	0x34,	0x35,	0x36,	0x37,
    202      	0x38,	0x39,	0x3a,	0x3b,	0x3c,	0x3d,	0x3e,	0x3f,
    203 	0x40,	'a',	'b',	'c',	'd',	'e',	'f',	'g',
    204      	'h',	'i',	'j',	'k',	'l',	'm',	'n',	'o',
    205 	'p',	'q',	'r',	's',	't',	'u',	'v',	'w',
    206      	'x',	'y',	'z',	0x5b,	0x5c,	0x5d,	0x5e,	0x5f,
    207 	0x60,	'a',	'b',	'c',	'd',	'e',	'f',	'g',
    208      	'h',	'i',	'j',	'k',	'l',	'm',	'n',	'o',
    209 	'p',	'q',	'r',	's',	't',	'u',	'v',	'w',
    210      	'x',	'y',	'z',	0x7b,	0x7c,	0x7d,	0x7e,	0x7f,
    211 	0x80,	0x81,	0x82,	0x83,	0x84,	0x85,	0x86,	0x87,
    212      	0x88,	0x89,	0x8a,	0x8b,	0x8c,	0x8d,	0x8e,	0x8f,
    213 	0x90,	0x91,	0x92,	0x93,	0x94,	0x95,	0x96,	0x97,
    214      	0x98,	0x99,	0x9a,	0x9b,	0x9c,	0x9d,	0x9e,	0x9f,
    215 	0xa0,	0xa1,	0xa2,	0xa3,	0xa4,	0xa5,	0xa6,	0xa7,
    216      	0xa8,	0xa9,	0xaa,	0xab,	0xac,	0xad,	0xae,	0xaf,
    217 	0xb0,	0xb1,	0xb2,	0xb3,	0xb4,	0xb5,	0xb6,	0xb7,
    218      	0xb8,	0xb9,	0xba,	0xbb,	0xbc,	0xbd,	0xbe,	0xbf,
    219 	0xc0,	0xc1,	0xc2,	0xc3,	0xc4,	0xc5,	0xc6,	0xc7,
    220      	0xc8,	0xc9,	0xca,	0xcb,	0xcc,	0xcd,	0xce,	0xcf,
    221 	0xd0,	0xd1,	0xd2,	0xd3,	0xd4,	0xd5,	0xd6,	0xd7,
    222      	0xd8,	0xd9,	0xda,	0xdb,	0xdc,	0xdd,	0xde,	0xdf,
    223 	0xe0,	0xe1,	0xe2,	0xe3,	0xe4,	0xe5,	0xe6,	0xe7,
    224      	0xe8,	0xe9,	0xea,	0xeb,	0xec,	0xed,	0xee,	0xef,
    225 	0xf0,	0xf1,	0xf2,	0xf3,	0xf4,	0xf5,	0xf6,	0xf7,
    226      	0xf8,	0xf9,	0xfa,	0xfb,	0xfc,	0xfd,	0xfe,	0xff,
    227     },
    228     {	0x00,	0x01,	0x02,	0x03,	0x04,	0x05,	0x06,	0x07,
    229      	0x08,	0x09,	0x0a,	0x0b,	0x0c,	0x0d,	0x0e,	0x0f,
    230 	0x10,	0x11,	0x12,	0x13,	0x14,	0x15,	0x16,	0x17,
    231      	0x18,	0x19,	0x1a,	0x1b,	0x1c,	0x1d,	0x1e,	0x1f,
    232 	0x20,	0x21,	0x22,	0x23,	0x24,	0x25,	0x26,	0x27,
    233      	0x28,	0x29,	0x2a,	0x2b,	0x2c,	0x2d,	0x2e,	0x2f,
    234 	0x30,	0x31,	0x32,	0x33,	0x34,	0x35,	0x36,	0x37,
    235      	0x38,	0x39,	0x3a,	0x3b,	0x3c,	0x3d,	0x3e,	0x3f,
    236 	0x40,	'A',	'B',	'C',	'D',	'E',	'F',	'G',
    237      	'H',	'I',	'J',	'K',	'L',	'M',	'N',	'O',
    238 	'P',	'Q',	'R',	'S',	'T',	'U',	'V',	'W',
    239      	'X',	'Y',	'Z',	0x5b,	0x5c,	0x5d,	0x5e,	0x5f,
    240 	0x60,	'A',	'B',	'C',	'D',	'E',	'F',	'G',
    241      	'H',	'I',	'J',	'K',	'L',	'M',	'N',	'O',
    242 	'P',	'Q',	'R',	'S',	'T',	'U',	'V',	'W',
    243      	'X',	'Y',	'Z',	0x7b,	0x7c,	0x7d,	0x7e,	0x7f,
    244 	0x80,	0x81,	0x82,	0x83,	0x84,	0x85,	0x86,	0x87,
    245      	0x88,	0x89,	0x8a,	0x8b,	0x8c,	0x8d,	0x8e,	0x8f,
    246 	0x90,	0x91,	0x92,	0x93,	0x94,	0x95,	0x96,	0x97,
    247      	0x98,	0x99,	0x9a,	0x9b,	0x9c,	0x9d,	0x9e,	0x9f,
    248 	0xa0,	0xa1,	0xa2,	0xa3,	0xa4,	0xa5,	0xa6,	0xa7,
    249      	0xa8,	0xa9,	0xaa,	0xab,	0xac,	0xad,	0xae,	0xaf,
    250 	0xb0,	0xb1,	0xb2,	0xb3,	0xb4,	0xb5,	0xb6,	0xb7,
    251      	0xb8,	0xb9,	0xba,	0xbb,	0xbc,	0xbd,	0xbe,	0xbf,
    252 	0xc0,	0xc1,	0xc2,	0xc3,	0xc4,	0xc5,	0xc6,	0xc7,
    253      	0xc8,	0xc9,	0xca,	0xcb,	0xcc,	0xcd,	0xce,	0xcf,
    254 	0xd0,	0xd1,	0xd2,	0xd3,	0xd4,	0xd5,	0xd6,	0xd7,
    255      	0xd8,	0xd9,	0xda,	0xdb,	0xdc,	0xdd,	0xde,	0xdf,
    256 	0xe0,	0xe1,	0xe2,	0xe3,	0xe4,	0xe5,	0xe6,	0xe7,
    257      	0xe8,	0xe9,	0xea,	0xeb,	0xec,	0xed,	0xee,	0xef,
    258 	0xf0,	0xf1,	0xf2,	0xf3,	0xf4,	0xf5,	0xf6,	0xf7,
    259      	0xf8,	0xf9,	0xfa,	0xfb,	0xfc,	0xfd,	0xfe,	0xff,
    260     },
    261     { 0, NULL },
    262     { 0, NULL },
    263     { 0, NULL },
    264     NULL, 0,
    265     "646",
    266     &_citrus_ctype_default,
    267     {
    268 	    { NULL, NULL, NULL },
    269 	    { NULL, NULL, NULL },
    270     },
    271     {
    272 	    { "alnum", _CTYPE_A|_CTYPE_D },
    273 	    { "alpha", _CTYPE_A },
    274 	    { "blank", _CTYPE_B },
    275 	    { "cntrl", _CTYPE_C },
    276 	    { "digit", _CTYPE_D },
    277 	    { "graph", _CTYPE_G },
    278 	    { "lower", _CTYPE_L },
    279 	    { "print", _CTYPE_R },
    280 	    { "punct", _CTYPE_P },
    281 	    { "space", _CTYPE_S },
    282 	    { "upper", _CTYPE_U },
    283 	    { "xdigit", _CTYPE_X },
    284     }
    285 };
    286 
    287 _RuneLocale *_CurrentRuneLocale = &_DefaultRuneLocale;
    288 
    289 char	*_PathLocale;
    290