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