| 1 | /* Copyright (C) 1995-2020 Free Software Foundation, Inc. | 
|---|
| 2 | This file is part of the GNU C Library. | 
|---|
| 3 | Contributed by Ulrich Drepper <drepper@cygnus.com>, 1995. | 
|---|
| 4 |  | 
|---|
| 5 | The GNU C Library is free software; you can redistribute it and/or | 
|---|
| 6 | modify it under the terms of the GNU Lesser General Public | 
|---|
| 7 | License as published by the Free Software Foundation; either | 
|---|
| 8 | version 2.1 of the License, or (at your option) any later version. | 
|---|
| 9 |  | 
|---|
| 10 | The GNU C Library is distributed in the hope that it will be useful, | 
|---|
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | 
|---|
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU | 
|---|
| 13 | Lesser General Public License for more details. | 
|---|
| 14 |  | 
|---|
| 15 | You should have received a copy of the GNU Lesser General Public | 
|---|
| 16 | License along with the GNU C Library; if not, see | 
|---|
| 17 | <https://www.gnu.org/licenses/>.  */ | 
|---|
| 18 |  | 
|---|
| 19 | #include "localeinfo.h" | 
|---|
| 20 | #include <endian.h> | 
|---|
| 21 | #include <stdint.h> | 
|---|
| 22 |  | 
|---|
| 23 | #include "C-translit.h" | 
|---|
| 24 |  | 
|---|
| 25 | /* This table's entries are taken from POSIX.2 Table 2-6 | 
|---|
| 26 | ``LC_CTYPE Category Definition in the POSIX Locale''. | 
|---|
| 27 |  | 
|---|
| 28 | The `_nl_C_LC_CTYPE_width' array is a GNU extension. | 
|---|
| 29 |  | 
|---|
| 30 | In the `_nl_C_LC_CTYPE_class' array the value for EOF (== -1) | 
|---|
| 31 | is set to always return 0 and the conversion arrays return EOF.  */ | 
|---|
| 32 |  | 
|---|
| 33 | const char _nl_C_LC_CTYPE_class[768] attribute_hidden = | 
|---|
| 34 | /* 0x80 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" | 
|---|
| 35 | /* 0x86 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" | 
|---|
| 36 | /* 0x8c */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" | 
|---|
| 37 | /* 0x92 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" | 
|---|
| 38 | /* 0x98 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" | 
|---|
| 39 | /* 0x9e */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" | 
|---|
| 40 | /* 0xa4 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" | 
|---|
| 41 | /* 0xaa */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" | 
|---|
| 42 | /* 0xb0 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" | 
|---|
| 43 | /* 0xb6 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" | 
|---|
| 44 | /* 0xbc */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" | 
|---|
| 45 | /* 0xc2 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" | 
|---|
| 46 | /* 0xc8 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" | 
|---|
| 47 | /* 0xce */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" | 
|---|
| 48 | /* 0xd4 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" | 
|---|
| 49 | /* 0xda */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" | 
|---|
| 50 | /* 0xe0 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" | 
|---|
| 51 | /* 0xe6 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" | 
|---|
| 52 | /* 0xec */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" | 
|---|
| 53 | /* 0xf2 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" | 
|---|
| 54 | /* 0xf8 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" | 
|---|
| 55 | /* 0xfe */ "\000\000" "\000\000" "\002\000" "\002\000" "\002\000" "\002\000" | 
|---|
| 56 | /* 0x04 */ "\002\000" "\002\000" "\002\000" "\002\000" "\002\000" "\003\040" | 
|---|
| 57 | /* 0x0a */ "\002\040" "\002\040" "\002\040" "\002\040" "\002\000" "\002\000" | 
|---|
| 58 | /* 0x10 */ "\002\000" "\002\000" "\002\000" "\002\000" "\002\000" "\002\000" | 
|---|
| 59 | /* 0x16 */ "\002\000" "\002\000" "\002\000" "\002\000" "\002\000" "\002\000" | 
|---|
| 60 | /* 0x1c */ "\002\000" "\002\000" "\002\000" "\002\000" "\001\140" "\004\300" | 
|---|
| 61 | /* 0x22 */ "\004\300" "\004\300" "\004\300" "\004\300" "\004\300" "\004\300" | 
|---|
| 62 | /* 0x28 */ "\004\300" "\004\300" "\004\300" "\004\300" "\004\300" "\004\300" | 
|---|
| 63 | /* 0x2e */ "\004\300" "\004\300" "\010\330" "\010\330" "\010\330" "\010\330" | 
|---|
| 64 | /* 0x34 */ "\010\330" "\010\330" "\010\330" "\010\330" "\010\330" "\010\330" | 
|---|
| 65 | /* 0x3a */ "\004\300" "\004\300" "\004\300" "\004\300" "\004\300" "\004\300" | 
|---|
| 66 | /* 0x40 */ "\004\300" "\010\325" "\010\325" "\010\325" "\010\325" "\010\325" | 
|---|
| 67 | /* 0x46 */ "\010\325" "\010\305" "\010\305" "\010\305" "\010\305" "\010\305" | 
|---|
| 68 | /* 0x4c */ "\010\305" "\010\305" "\010\305" "\010\305" "\010\305" "\010\305" | 
|---|
| 69 | /* 0x52 */ "\010\305" "\010\305" "\010\305" "\010\305" "\010\305" "\010\305" | 
|---|
| 70 | /* 0x58 */ "\010\305" "\010\305" "\010\305" "\004\300" "\004\300" "\004\300" | 
|---|
| 71 | /* 0x5e */ "\004\300" "\004\300" "\004\300" "\010\326" "\010\326" "\010\326" | 
|---|
| 72 | /* 0x64 */ "\010\326" "\010\326" "\010\326" "\010\306" "\010\306" "\010\306" | 
|---|
| 73 | /* 0x6a */ "\010\306" "\010\306" "\010\306" "\010\306" "\010\306" "\010\306" | 
|---|
| 74 | /* 0x70 */ "\010\306" "\010\306" "\010\306" "\010\306" "\010\306" "\010\306" | 
|---|
| 75 | /* 0x76 */ "\010\306" "\010\306" "\010\306" "\010\306" "\010\306" "\004\300" | 
|---|
| 76 | /* 0x7c */ "\004\300" "\004\300" "\004\300" "\002\000" "\000\000" "\000\000" | 
|---|
| 77 | /* 0x82 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" | 
|---|
| 78 | /* 0x88 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" | 
|---|
| 79 | /* 0x8e */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" | 
|---|
| 80 | /* 0x94 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" | 
|---|
| 81 | /* 0x9a */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" | 
|---|
| 82 | /* 0xa0 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" | 
|---|
| 83 | /* 0xa6 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" | 
|---|
| 84 | /* 0xac */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" | 
|---|
| 85 | /* 0xb2 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" | 
|---|
| 86 | /* 0xb8 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" | 
|---|
| 87 | /* 0xbe */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" | 
|---|
| 88 | /* 0xc4 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" | 
|---|
| 89 | /* 0xca */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" | 
|---|
| 90 | /* 0xd0 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" | 
|---|
| 91 | /* 0xd6 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" | 
|---|
| 92 | /* 0xdc */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" | 
|---|
| 93 | /* 0xe2 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" | 
|---|
| 94 | /* 0xe8 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" | 
|---|
| 95 | /* 0xee */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" | 
|---|
| 96 | /* 0xf4 */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" | 
|---|
| 97 | /* 0xfa */ "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" "\000\000" | 
|---|
| 98 | ; | 
|---|
| 99 | const char _nl_C_LC_CTYPE_class32[1024] attribute_hidden = | 
|---|
| 100 | /* 0x00 */ "\000\000\002\000" "\000\000\002\000" "\000\000\002\000" | 
|---|
| 101 | /* 0x03 */ "\000\000\002\000" "\000\000\002\000" "\000\000\002\000" | 
|---|
| 102 | /* 0x06 */ "\000\000\002\000" "\000\000\002\000" "\000\000\002\000" | 
|---|
| 103 | /* 0x09 */ "\000\000\003\040" "\000\000\002\040" "\000\000\002\040" | 
|---|
| 104 | /* 0x0c */ "\000\000\002\040" "\000\000\002\040" "\000\000\002\000" | 
|---|
| 105 | /* 0x0f */ "\000\000\002\000" "\000\000\002\000" "\000\000\002\000" | 
|---|
| 106 | /* 0x12 */ "\000\000\002\000" "\000\000\002\000" "\000\000\002\000" | 
|---|
| 107 | /* 0x15 */ "\000\000\002\000" "\000\000\002\000" "\000\000\002\000" | 
|---|
| 108 | /* 0x18 */ "\000\000\002\000" "\000\000\002\000" "\000\000\002\000" | 
|---|
| 109 | /* 0x1b */ "\000\000\002\000" "\000\000\002\000" "\000\000\002\000" | 
|---|
| 110 | /* 0x1e */ "\000\000\002\000" "\000\000\002\000" "\000\000\001\140" | 
|---|
| 111 | /* 0x21 */ "\000\000\004\300" "\000\000\004\300" "\000\000\004\300" | 
|---|
| 112 | /* 0x24 */ "\000\000\004\300" "\000\000\004\300" "\000\000\004\300" | 
|---|
| 113 | /* 0x27 */ "\000\000\004\300" "\000\000\004\300" "\000\000\004\300" | 
|---|
| 114 | /* 0x2a */ "\000\000\004\300" "\000\000\004\300" "\000\000\004\300" | 
|---|
| 115 | /* 0x2d */ "\000\000\004\300" "\000\000\004\300" "\000\000\004\300" | 
|---|
| 116 | /* 0x30 */ "\000\000\010\330" "\000\000\010\330" "\000\000\010\330" | 
|---|
| 117 | /* 0x33 */ "\000\000\010\330" "\000\000\010\330" "\000\000\010\330" | 
|---|
| 118 | /* 0x36 */ "\000\000\010\330" "\000\000\010\330" "\000\000\010\330" | 
|---|
| 119 | /* 0x39 */ "\000\000\010\330" "\000\000\004\300" "\000\000\004\300" | 
|---|
| 120 | /* 0x3c */ "\000\000\004\300" "\000\000\004\300" "\000\000\004\300" | 
|---|
| 121 | /* 0x3f */ "\000\000\004\300" "\000\000\004\300" "\000\000\010\325" | 
|---|
| 122 | /* 0x42 */ "\000\000\010\325" "\000\000\010\325" "\000\000\010\325" | 
|---|
| 123 | /* 0x45 */ "\000\000\010\325" "\000\000\010\325" "\000\000\010\305" | 
|---|
| 124 | /* 0x48 */ "\000\000\010\305" "\000\000\010\305" "\000\000\010\305" | 
|---|
| 125 | /* 0x4b */ "\000\000\010\305" "\000\000\010\305" "\000\000\010\305" | 
|---|
| 126 | /* 0x4e */ "\000\000\010\305" "\000\000\010\305" "\000\000\010\305" | 
|---|
| 127 | /* 0x51 */ "\000\000\010\305" "\000\000\010\305" "\000\000\010\305" | 
|---|
| 128 | /* 0x54 */ "\000\000\010\305" "\000\000\010\305" "\000\000\010\305" | 
|---|
| 129 | /* 0x57 */ "\000\000\010\305" "\000\000\010\305" "\000\000\010\305" | 
|---|
| 130 | /* 0x5a */ "\000\000\010\305" "\000\000\004\300" "\000\000\004\300" | 
|---|
| 131 | /* 0x5d */ "\000\000\004\300" "\000\000\004\300" "\000\000\004\300" | 
|---|
| 132 | /* 0x60 */ "\000\000\004\300" "\000\000\010\326" "\000\000\010\326" | 
|---|
| 133 | /* 0x63 */ "\000\000\010\326" "\000\000\010\326" "\000\000\010\326" | 
|---|
| 134 | /* 0x66 */ "\000\000\010\326" "\000\000\010\306" "\000\000\010\306" | 
|---|
| 135 | /* 0x69 */ "\000\000\010\306" "\000\000\010\306" "\000\000\010\306" | 
|---|
| 136 | /* 0x6c */ "\000\000\010\306" "\000\000\010\306" "\000\000\010\306" | 
|---|
| 137 | /* 0x6f */ "\000\000\010\306" "\000\000\010\306" "\000\000\010\306" | 
|---|
| 138 | /* 0x72 */ "\000\000\010\306" "\000\000\010\306" "\000\000\010\306" | 
|---|
| 139 | /* 0x75 */ "\000\000\010\306" "\000\000\010\306" "\000\000\010\306" | 
|---|
| 140 | /* 0x78 */ "\000\000\010\306" "\000\000\010\306" "\000\000\010\306" | 
|---|
| 141 | /* 0x7b */ "\000\000\004\300" "\000\000\004\300" "\000\000\004\300" | 
|---|
| 142 | /* 0x7e */ "\000\000\004\300" "\000\000\002\000" "\000\000\000\000" | 
|---|
| 143 | /* 0x81 */ "\000\000\000\000" "\000\000\000\000" "\000\000\000\000" | 
|---|
| 144 | /* 0x84 */ "\000\000\000\000" "\000\000\000\000" "\000\000\000\000" | 
|---|
| 145 | /* 0x87 */ "\000\000\000\000" "\000\000\000\000" "\000\000\000\000" | 
|---|
| 146 | /* 0x8a */ "\000\000\000\000" "\000\000\000\000" "\000\000\000\000" | 
|---|
| 147 | /* 0x8d */ "\000\000\000\000" "\000\000\000\000" "\000\000\000\000" | 
|---|
| 148 | /* 0x90 */ "\000\000\000\000" "\000\000\000\000" "\000\000\000\000" | 
|---|
| 149 | /* 0x93 */ "\000\000\000\000" "\000\000\000\000" "\000\000\000\000" | 
|---|
| 150 | /* 0x96 */ "\000\000\000\000" "\000\000\000\000" "\000\000\000\000" | 
|---|
| 151 | /* 0x99 */ "\000\000\000\000" "\000\000\000\000" "\000\000\000\000" | 
|---|
| 152 | /* 0x9c */ "\000\000\000\000" "\000\000\000\000" "\000\000\000\000" | 
|---|
| 153 | /* 0x9f */ "\000\000\000\000" "\000\000\000\000" "\000\000\000\000" | 
|---|
| 154 | /* 0xa2 */ "\000\000\000\000" "\000\000\000\000" "\000\000\000\000" | 
|---|
| 155 | /* 0xa5 */ "\000\000\000\000" "\000\000\000\000" "\000\000\000\000" | 
|---|
| 156 | /* 0xa8 */ "\000\000\000\000" "\000\000\000\000" "\000\000\000\000" | 
|---|
| 157 | /* 0xab */ "\000\000\000\000" "\000\000\000\000" "\000\000\000\000" | 
|---|
| 158 | /* 0xae */ "\000\000\000\000" "\000\000\000\000" "\000\000\000\000" | 
|---|
| 159 | /* 0xb1 */ "\000\000\000\000" "\000\000\000\000" "\000\000\000\000" | 
|---|
| 160 | /* 0xb4 */ "\000\000\000\000" "\000\000\000\000" "\000\000\000\000" | 
|---|
| 161 | /* 0xb7 */ "\000\000\000\000" "\000\000\000\000" "\000\000\000\000" | 
|---|
| 162 | /* 0xba */ "\000\000\000\000" "\000\000\000\000" "\000\000\000\000" | 
|---|
| 163 | /* 0xbd */ "\000\000\000\000" "\000\000\000\000" "\000\000\000\000" | 
|---|
| 164 | /* 0xc0 */ "\000\000\000\000" "\000\000\000\000" "\000\000\000\000" | 
|---|
| 165 | /* 0xc3 */ "\000\000\000\000" "\000\000\000\000" "\000\000\000\000" | 
|---|
| 166 | /* 0xc6 */ "\000\000\000\000" "\000\000\000\000" "\000\000\000\000" | 
|---|
| 167 | /* 0xc9 */ "\000\000\000\000" "\000\000\000\000" "\000\000\000\000" | 
|---|
| 168 | /* 0xcc */ "\000\000\000\000" "\000\000\000\000" "\000\000\000\000" | 
|---|
| 169 | /* 0xcf */ "\000\000\000\000" "\000\000\000\000" "\000\000\000\000" | 
|---|
| 170 | /* 0xd2 */ "\000\000\000\000" "\000\000\000\000" "\000\000\000\000" | 
|---|
| 171 | /* 0xd5 */ "\000\000\000\000" "\000\000\000\000" "\000\000\000\000" | 
|---|
| 172 | /* 0xd8 */ "\000\000\000\000" "\000\000\000\000" "\000\000\000\000" | 
|---|
| 173 | /* 0xdb */ "\000\000\000\000" "\000\000\000\000" "\000\000\000\000" | 
|---|
| 174 | /* 0xde */ "\000\000\000\000" "\000\000\000\000" "\000\000\000\000" | 
|---|
| 175 | /* 0xe1 */ "\000\000\000\000" "\000\000\000\000" "\000\000\000\000" | 
|---|
| 176 | /* 0xe4 */ "\000\000\000\000" "\000\000\000\000" "\000\000\000\000" | 
|---|
| 177 | /* 0xe7 */ "\000\000\000\000" "\000\000\000\000" "\000\000\000\000" | 
|---|
| 178 | /* 0xea */ "\000\000\000\000" "\000\000\000\000" "\000\000\000\000" | 
|---|
| 179 | /* 0xed */ "\000\000\000\000" "\000\000\000\000" "\000\000\000\000" | 
|---|
| 180 | /* 0xf0 */ "\000\000\000\000" "\000\000\000\000" "\000\000\000\000" | 
|---|
| 181 | /* 0xf3 */ "\000\000\000\000" "\000\000\000\000" "\000\000\000\000" | 
|---|
| 182 | /* 0xf6 */ "\000\000\000\000" "\000\000\000\000" "\000\000\000\000" | 
|---|
| 183 | /* 0xf9 */ "\000\000\000\000" "\000\000\000\000" "\000\000\000\000" | 
|---|
| 184 | /* 0xfc */ "\000\000\000\000" "\000\000\000\000" "\000\000\000\000" | 
|---|
| 185 | /* 0xff */ "\000\000\000\000" | 
|---|
| 186 | ; | 
|---|
| 187 | const uint32_t _nl_C_LC_CTYPE_toupper[384] attribute_hidden = | 
|---|
| 188 | { | 
|---|
| 189 | /* 0x80 */ 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, | 
|---|
| 190 | /* 0x88 */ 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, | 
|---|
| 191 | /* 0x90 */ 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, | 
|---|
| 192 | /* 0x98 */ 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, | 
|---|
| 193 | /* 0xa0 */ 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, | 
|---|
| 194 | /* 0xa8 */ 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, | 
|---|
| 195 | /* 0xb0 */ 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, | 
|---|
| 196 | /* 0xb8 */ 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, | 
|---|
| 197 | /* 0xc0 */ 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, | 
|---|
| 198 | /* 0xc8 */ 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, | 
|---|
| 199 | /* 0xd0 */ 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, | 
|---|
| 200 | /* 0xd8 */ 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, | 
|---|
| 201 | /* 0xe0 */ 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, | 
|---|
| 202 | /* 0xe8 */ 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, | 
|---|
| 203 | /* 0xf0 */ 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, | 
|---|
| 204 | /* 0xf8 */ 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xffffffff, | 
|---|
| 205 | /* 0x00 */ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, | 
|---|
| 206 | /* 0x08 */ 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, | 
|---|
| 207 | /* 0x10 */ 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, | 
|---|
| 208 | /* 0x18 */ 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, | 
|---|
| 209 | /* 0x20 */ 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, | 
|---|
| 210 | /* 0x28 */ 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, | 
|---|
| 211 | /* 0x30 */ 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, | 
|---|
| 212 | /* 0x38 */ 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, | 
|---|
| 213 | /* 0x40 */ 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, | 
|---|
| 214 | /* 0x48 */ 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, | 
|---|
| 215 | /* 0x50 */ 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, | 
|---|
| 216 | /* 0x58 */ 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, | 
|---|
| 217 | /* 0x60 */ 0x60, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, | 
|---|
| 218 | /* 0x68 */ 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, | 
|---|
| 219 | /* 0x70 */ 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, | 
|---|
| 220 | /* 0x78 */ 0x58, 0x59, 0x5a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, | 
|---|
| 221 | /* 0x80 */ 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, | 
|---|
| 222 | /* 0x88 */ 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, | 
|---|
| 223 | /* 0x90 */ 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, | 
|---|
| 224 | /* 0x98 */ 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, | 
|---|
| 225 | /* 0xa0 */ 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, | 
|---|
| 226 | /* 0xa8 */ 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, | 
|---|
| 227 | /* 0xb0 */ 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, | 
|---|
| 228 | /* 0xb8 */ 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, | 
|---|
| 229 | /* 0xc0 */ 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, | 
|---|
| 230 | /* 0xc8 */ 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, | 
|---|
| 231 | /* 0xd0 */ 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, | 
|---|
| 232 | /* 0xd8 */ 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, | 
|---|
| 233 | /* 0xe0 */ 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, | 
|---|
| 234 | /* 0xe8 */ 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, | 
|---|
| 235 | /* 0xf0 */ 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, | 
|---|
| 236 | /* 0xf8 */ 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff | 
|---|
| 237 | }; | 
|---|
| 238 | const uint32_t _nl_C_LC_CTYPE_tolower[384] attribute_hidden = | 
|---|
| 239 | { | 
|---|
| 240 | /* 0x80 */ 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, | 
|---|
| 241 | /* 0x88 */ 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, | 
|---|
| 242 | /* 0x90 */ 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, | 
|---|
| 243 | /* 0x98 */ 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, | 
|---|
| 244 | /* 0xa0 */ 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, | 
|---|
| 245 | /* 0xa8 */ 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, | 
|---|
| 246 | /* 0xb0 */ 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, | 
|---|
| 247 | /* 0xb8 */ 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, | 
|---|
| 248 | /* 0xc0 */ 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, | 
|---|
| 249 | /* 0xc8 */ 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, | 
|---|
| 250 | /* 0xd0 */ 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, | 
|---|
| 251 | /* 0xd8 */ 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, | 
|---|
| 252 | /* 0xe0 */ 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, | 
|---|
| 253 | /* 0xe8 */ 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, | 
|---|
| 254 | /* 0xf0 */ 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, | 
|---|
| 255 | /* 0xf8 */ 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xffffffff, | 
|---|
| 256 | /* 0x00 */ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, | 
|---|
| 257 | /* 0x08 */ 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, | 
|---|
| 258 | /* 0x10 */ 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, | 
|---|
| 259 | /* 0x18 */ 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, | 
|---|
| 260 | /* 0x20 */ 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, | 
|---|
| 261 | /* 0x28 */ 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, | 
|---|
| 262 | /* 0x30 */ 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, | 
|---|
| 263 | /* 0x38 */ 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, | 
|---|
| 264 | /* 0x40 */ 0x40, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, | 
|---|
| 265 | /* 0x48 */ 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, | 
|---|
| 266 | /* 0x50 */ 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, | 
|---|
| 267 | /* 0x58 */ 0x78, 0x79, 0x7a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, | 
|---|
| 268 | /* 0x60 */ 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, | 
|---|
| 269 | /* 0x68 */ 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, | 
|---|
| 270 | /* 0x70 */ 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, | 
|---|
| 271 | /* 0x78 */ 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, | 
|---|
| 272 | /* 0x80 */ 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, | 
|---|
| 273 | /* 0x88 */ 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, | 
|---|
| 274 | /* 0x90 */ 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, | 
|---|
| 275 | /* 0x98 */ 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, | 
|---|
| 276 | /* 0xa0 */ 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, | 
|---|
| 277 | /* 0xa8 */ 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, | 
|---|
| 278 | /* 0xb0 */ 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, | 
|---|
| 279 | /* 0xb8 */ 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, | 
|---|
| 280 | /* 0xc0 */ 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, | 
|---|
| 281 | /* 0xc8 */ 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, | 
|---|
| 282 | /* 0xd0 */ 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, | 
|---|
| 283 | /* 0xd8 */ 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, | 
|---|
| 284 | /* 0xe0 */ 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, | 
|---|
| 285 | /* 0xe8 */ 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, | 
|---|
| 286 | /* 0xf0 */ 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, | 
|---|
| 287 | /* 0xf8 */ 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff | 
|---|
| 288 | }; | 
|---|
| 289 |  | 
|---|
| 290 | #define STRUCT_CTYPE_CLASS(p, q) \ | 
|---|
| 291 | struct                                                                      \ | 
|---|
| 292 | {                                                                         \ | 
|---|
| 293 | uint32_t isctype_data[8];                                               \ | 
|---|
| 294 | uint32_t [5];                                                     \ | 
|---|
| 295 | uint32_t level1[1];                                                     \ | 
|---|
| 296 | uint32_t level2[1 << q];                                                \ | 
|---|
| 297 | uint32_t level3[1 << p];                                                \ | 
|---|
| 298 | } | 
|---|
| 299 |  | 
|---|
| 300 | const STRUCT_CTYPE_CLASS(1, 1) _nl_C_LC_CTYPE_class_upper attribute_hidden = | 
|---|
| 301 | { | 
|---|
| 302 | { 0x00000000, 0x00000000, 0x07fffffe, 0x00000000, | 
|---|
| 303 | 0x00000000, 0x00000000, 0x00000000, 0x00000000 | 
|---|
| 304 | }, | 
|---|
| 305 | { 7, 1, 6, 1, 1 }, | 
|---|
| 306 | /* 1st-level table */ | 
|---|
| 307 | { 6 * sizeof (uint32_t) }, | 
|---|
| 308 | /* 2nd-level table */ | 
|---|
| 309 | { 0, 8 * sizeof (uint32_t) }, | 
|---|
| 310 | /* 3rd-level table */ | 
|---|
| 311 | { 0x07fffffe, 0x00000000 } | 
|---|
| 312 | }; | 
|---|
| 313 | const STRUCT_CTYPE_CLASS(1, 1) _nl_C_LC_CTYPE_class_lower attribute_hidden = | 
|---|
| 314 | { | 
|---|
| 315 | { 0x00000000, 0x00000000, 0x00000000, 0x07fffffe, | 
|---|
| 316 | 0x00000000, 0x00000000, 0x00000000, 0x00000000 | 
|---|
| 317 | }, | 
|---|
| 318 | { 7, 1, 6, 1, 1 }, | 
|---|
| 319 | /* 1st-level table */ | 
|---|
| 320 | { 6 * sizeof (uint32_t) }, | 
|---|
| 321 | /* 2nd-level table */ | 
|---|
| 322 | { 0, 8 * sizeof (uint32_t) }, | 
|---|
| 323 | /* 3rd-level table */ | 
|---|
| 324 | { 0x00000000, 0x07fffffe } | 
|---|
| 325 | }; | 
|---|
| 326 | const STRUCT_CTYPE_CLASS(1, 1) _nl_C_LC_CTYPE_class_alpha attribute_hidden = | 
|---|
| 327 | { | 
|---|
| 328 | { 0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe, | 
|---|
| 329 | 0x00000000, 0x00000000, 0x00000000, 0x00000000 | 
|---|
| 330 | }, | 
|---|
| 331 | { 7, 1, 6, 1, 1 }, | 
|---|
| 332 | /* 1st-level table */ | 
|---|
| 333 | { 6 * sizeof (uint32_t) }, | 
|---|
| 334 | /* 2nd-level table */ | 
|---|
| 335 | { 0, 8 * sizeof (uint32_t) }, | 
|---|
| 336 | /* 3rd-level table */ | 
|---|
| 337 | { 0x07fffffe, 0x07fffffe } | 
|---|
| 338 | }; | 
|---|
| 339 | const STRUCT_CTYPE_CLASS(1, 0) _nl_C_LC_CTYPE_class_digit attribute_hidden = | 
|---|
| 340 | { | 
|---|
| 341 | { 0x00000000, 0x03ff0000, 0x00000000, 0x00000000, | 
|---|
| 342 | 0x00000000, 0x00000000, 0x00000000, 0x00000000 | 
|---|
| 343 | }, | 
|---|
| 344 | { 6, 1, 6, 0, 1 }, | 
|---|
| 345 | /* 1st-level table */ | 
|---|
| 346 | { 6 * sizeof (uint32_t) }, | 
|---|
| 347 | /* 2nd-level table */ | 
|---|
| 348 | { 7 * sizeof (uint32_t) }, | 
|---|
| 349 | /* 3rd-level table */ | 
|---|
| 350 | { 0x00000000, 0x03ff0000 } | 
|---|
| 351 | }; | 
|---|
| 352 | const STRUCT_CTYPE_CLASS(2, 0) _nl_C_LC_CTYPE_class_xdigit attribute_hidden = | 
|---|
| 353 | { | 
|---|
| 354 | { 0x00000000, 0x03ff0000, 0x0000007e, 0x0000007e, | 
|---|
| 355 | 0x00000000, 0x00000000, 0x00000000, 0x00000000 | 
|---|
| 356 | }, | 
|---|
| 357 | { 7, 1, 7, 0, 3 }, | 
|---|
| 358 | /* 1st-level table */ | 
|---|
| 359 | { 6 * sizeof (uint32_t) }, | 
|---|
| 360 | /* 2nd-level table */ | 
|---|
| 361 | { 7 * sizeof (uint32_t) }, | 
|---|
| 362 | /* 3rd-level table */ | 
|---|
| 363 | { 0x00000000, 0x03ff0000, 0x0000007e, 0x0000007e } | 
|---|
| 364 | }; | 
|---|
| 365 | const STRUCT_CTYPE_CLASS(1, 0) _nl_C_LC_CTYPE_class_space attribute_hidden = | 
|---|
| 366 | { | 
|---|
| 367 | { 0x00003e00, 0x00000001, 0x00000000, 0x00000000, | 
|---|
| 368 | 0x00000000, 0x00000000, 0x00000000, 0x00000000 | 
|---|
| 369 | }, | 
|---|
| 370 | { 6, 1, 6, 0, 1 }, | 
|---|
| 371 | /* 1st-level table */ | 
|---|
| 372 | { 6 * sizeof (uint32_t) }, | 
|---|
| 373 | /* 2nd-level table */ | 
|---|
| 374 | { 7 * sizeof (uint32_t) }, | 
|---|
| 375 | /* 3rd-level table */ | 
|---|
| 376 | { 0x00003e00, 0x00000001 } | 
|---|
| 377 | }; | 
|---|
| 378 | const STRUCT_CTYPE_CLASS(2, 0) _nl_C_LC_CTYPE_class_print attribute_hidden = | 
|---|
| 379 | { | 
|---|
| 380 | { 0x00000000, 0xffffffff, 0xffffffff, 0x7fffffff, | 
|---|
| 381 | 0x00000000, 0x00000000, 0x00000000, 0x00000000 | 
|---|
| 382 | }, | 
|---|
| 383 | { 7, 1, 7, 0, 3 }, | 
|---|
| 384 | /* 1st-level table */ | 
|---|
| 385 | { 6 * sizeof (uint32_t) }, | 
|---|
| 386 | /* 2nd-level table */ | 
|---|
| 387 | { 7 * sizeof (uint32_t) }, | 
|---|
| 388 | /* 3rd-level table */ | 
|---|
| 389 | { 0x00000000, 0xffffffff, 0xffffffff, 0x7fffffff } | 
|---|
| 390 | }; | 
|---|
| 391 | const STRUCT_CTYPE_CLASS(2, 0) _nl_C_LC_CTYPE_class_graph attribute_hidden = | 
|---|
| 392 | { | 
|---|
| 393 | { 0x00000000, 0xfffffffe, 0xffffffff, 0x7fffffff, | 
|---|
| 394 | 0x00000000, 0x00000000, 0x00000000, 0x00000000 | 
|---|
| 395 | }, | 
|---|
| 396 | { 7, 1, 7, 0, 3 }, | 
|---|
| 397 | /* 1st-level table */ | 
|---|
| 398 | { 6 * sizeof (uint32_t) }, | 
|---|
| 399 | /* 2nd-level table */ | 
|---|
| 400 | { 7 * sizeof (uint32_t) }, | 
|---|
| 401 | /* 3rd-level table */ | 
|---|
| 402 | { 0x00000000, 0xfffffffe, 0xffffffff, 0x7fffffff } | 
|---|
| 403 | }; | 
|---|
| 404 | const STRUCT_CTYPE_CLASS(1, 0) _nl_C_LC_CTYPE_class_blank attribute_hidden = | 
|---|
| 405 | { | 
|---|
| 406 | { 0x00000200, 0x00000001, 0x00000000, 0x00000000, | 
|---|
| 407 | 0x00000000, 0x00000000, 0x00000000, 0x00000000 | 
|---|
| 408 | }, | 
|---|
| 409 | { 6, 1, 6, 0, 1 }, | 
|---|
| 410 | /* 1st-level table */ | 
|---|
| 411 | { 6 * sizeof (uint32_t) }, | 
|---|
| 412 | /* 2nd-level table */ | 
|---|
| 413 | { 7 * sizeof (uint32_t) }, | 
|---|
| 414 | /* 3rd-level table */ | 
|---|
| 415 | { 0x00000200, 0x00000001 } | 
|---|
| 416 | }; | 
|---|
| 417 | const STRUCT_CTYPE_CLASS(2, 0) _nl_C_LC_CTYPE_class_cntrl attribute_hidden = | 
|---|
| 418 | { | 
|---|
| 419 | { 0xffffffff, 0x00000000, 0x00000000, 0x80000000, | 
|---|
| 420 | 0x00000000, 0x00000000, 0x00000000, 0x00000000 | 
|---|
| 421 | }, | 
|---|
| 422 | { 7, 1, 7, 0, 3 }, | 
|---|
| 423 | /* 1st-level table */ | 
|---|
| 424 | { 6 * sizeof (uint32_t) }, | 
|---|
| 425 | /* 2nd-level table */ | 
|---|
| 426 | { 7 * sizeof (uint32_t) }, | 
|---|
| 427 | /* 3rd-level table */ | 
|---|
| 428 | { 0xffffffff, 0x00000000, 0x00000000, 0x80000000 } | 
|---|
| 429 | }; | 
|---|
| 430 | const STRUCT_CTYPE_CLASS(2, 0) _nl_C_LC_CTYPE_class_punct attribute_hidden = | 
|---|
| 431 | { | 
|---|
| 432 | { 0x00000000, 0xfc00fffe, 0xf8000001, 0x78000001, | 
|---|
| 433 | 0x00000000, 0x00000000, 0x00000000, 0x00000000 | 
|---|
| 434 | }, | 
|---|
| 435 | { 7, 1, 7, 0, 3 }, | 
|---|
| 436 | /* 1st-level table */ | 
|---|
| 437 | { 6 * sizeof (uint32_t) }, | 
|---|
| 438 | /* 2nd-level table */ | 
|---|
| 439 | { 7 * sizeof (uint32_t) }, | 
|---|
| 440 | /* 3rd-level table */ | 
|---|
| 441 | { 0x00000000, 0xfc00fffe, 0xf8000001, 0x78000001 } | 
|---|
| 442 | }; | 
|---|
| 443 | const STRUCT_CTYPE_CLASS(2, 0) _nl_C_LC_CTYPE_class_alnum attribute_hidden = | 
|---|
| 444 | { | 
|---|
| 445 | { 0x00000000, 0x03ff0000, 0x07fffffe, 0x07fffffe, | 
|---|
| 446 | 0x00000000, 0x00000000, 0x00000000, 0x00000000 | 
|---|
| 447 | }, | 
|---|
| 448 | { 7, 1, 7, 0, 3 }, | 
|---|
| 449 | /* 1st-level table */ | 
|---|
| 450 | { 6 * sizeof (uint32_t) }, | 
|---|
| 451 | /* 2nd-level table */ | 
|---|
| 452 | { 7 * sizeof (uint32_t) }, | 
|---|
| 453 | /* 3rd-level table */ | 
|---|
| 454 | { 0x00000000, 0x03ff0000, 0x07fffffe, 0x07fffffe } | 
|---|
| 455 | }; | 
|---|
| 456 |  | 
|---|
| 457 | const struct | 
|---|
| 458 | { | 
|---|
| 459 | uint32_t [5]; | 
|---|
| 460 | uint32_t level1[1]; | 
|---|
| 461 | uint32_t level2[4]; | 
|---|
| 462 | int32_t level3[32]; | 
|---|
| 463 | } | 
|---|
| 464 | _nl_C_LC_CTYPE_map_toupper attribute_hidden = | 
|---|
| 465 | { | 
|---|
| 466 | { 7, 1, 5, 3, 31 }, | 
|---|
| 467 | /* 1st-level table */ | 
|---|
| 468 | { 6 * sizeof (uint32_t) }, | 
|---|
| 469 | /* 2nd-level table */ | 
|---|
| 470 | { 0, 0, 0, 10 * sizeof (uint32_t) }, | 
|---|
| 471 | /* 3rd-level table */ | 
|---|
| 472 | { | 
|---|
| 473 | 0x00000000, 0xffffffe0, 0xffffffe0, 0xffffffe0, | 
|---|
| 474 | 0xffffffe0, 0xffffffe0, 0xffffffe0, 0xffffffe0, | 
|---|
| 475 | 0xffffffe0, 0xffffffe0, 0xffffffe0, 0xffffffe0, | 
|---|
| 476 | 0xffffffe0, 0xffffffe0, 0xffffffe0, 0xffffffe0, | 
|---|
| 477 | 0xffffffe0, 0xffffffe0, 0xffffffe0, 0xffffffe0, | 
|---|
| 478 | 0xffffffe0, 0xffffffe0, 0xffffffe0, 0xffffffe0, | 
|---|
| 479 | 0xffffffe0, 0xffffffe0, 0xffffffe0, 0x00000000, | 
|---|
| 480 | 0x00000000, 0x00000000, 0x00000000, 0x00000000 | 
|---|
| 481 | } | 
|---|
| 482 | }, | 
|---|
| 483 | _nl_C_LC_CTYPE_map_tolower attribute_hidden = | 
|---|
| 484 | { | 
|---|
| 485 | { 7, 1, 5, 3, 31 }, | 
|---|
| 486 | /* 1st-level table */ | 
|---|
| 487 | { 6 * sizeof (uint32_t) }, | 
|---|
| 488 | /* 2nd-level table */ | 
|---|
| 489 | { 0, 0, 10 * sizeof (uint32_t), 0 }, | 
|---|
| 490 | /* 3rd-level table */ | 
|---|
| 491 | { | 
|---|
| 492 | 0x00000000, 0x00000020, 0x00000020, 0x00000020, | 
|---|
| 493 | 0x00000020, 0x00000020, 0x00000020, 0x00000020, | 
|---|
| 494 | 0x00000020, 0x00000020, 0x00000020, 0x00000020, | 
|---|
| 495 | 0x00000020, 0x00000020, 0x00000020, 0x00000020, | 
|---|
| 496 | 0x00000020, 0x00000020, 0x00000020, 0x00000020, | 
|---|
| 497 | 0x00000020, 0x00000020, 0x00000020, 0x00000020, | 
|---|
| 498 | 0x00000020, 0x00000020, 0x00000020, 0x00000000, | 
|---|
| 499 | 0x00000000, 0x00000000, 0x00000000, 0x00000000 | 
|---|
| 500 | } | 
|---|
| 501 | }; | 
|---|
| 502 |  | 
|---|
| 503 | const struct | 
|---|
| 504 | { | 
|---|
| 505 | uint32_t [5]; | 
|---|
| 506 | uint32_t level1[1]; | 
|---|
| 507 | uint32_t level2[8]; | 
|---|
| 508 | int8_t level3[33]; | 
|---|
| 509 | } | 
|---|
| 510 | _nl_C_LC_CTYPE_width attribute_hidden = | 
|---|
| 511 | { | 
|---|
| 512 | { 7, 1, 4, 7, 15 }, | 
|---|
| 513 | /* 1st-level table */ | 
|---|
| 514 | { 6 * sizeof (uint32_t) }, | 
|---|
| 515 | /* 2nd-level table */ | 
|---|
| 516 | { | 
|---|
| 517 | 14 * sizeof (uint32_t) +  0, 0, | 
|---|
| 518 | 14 * sizeof (uint32_t) + 16, 14 * sizeof (uint32_t) + 16, | 
|---|
| 519 | 14 * sizeof (uint32_t) + 16, 14 * sizeof (uint32_t) + 16, | 
|---|
| 520 | 14 * sizeof (uint32_t) + 16, 14 * sizeof (uint32_t) + 17 | 
|---|
| 521 | }, | 
|---|
| 522 | /* 3rd-level table */ | 
|---|
| 523 | { | 
|---|
| 524 | 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, | 
|---|
| 525 | 1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1, | 
|---|
| 526 | -1 | 
|---|
| 527 | } | 
|---|
| 528 | }; | 
|---|
| 529 |  | 
|---|
| 530 | /* Number of fields with fixed meanings, starting at 0.  */ | 
|---|
| 531 | #define NR_FIXED 72 | 
|---|
| 532 | /* Number of class fields, starting at CLASS_OFFSET.  */ | 
|---|
| 533 | #define NR_CLASSES 12 | 
|---|
| 534 | /* Number of map fields, starting at MAP_OFFSET.  */ | 
|---|
| 535 | #define NR_MAPS 2 | 
|---|
| 536 |  | 
|---|
| 537 | /* Compile time verification of | 
|---|
| 538 | NR_FIXED == _NL_ITEM_INDEX (_NL_CTYPE_EXTRA_MAP_1). */ | 
|---|
| 539 | typedef int assertion1[1 - 2 * (NR_FIXED != _NL_ITEM_INDEX (_NL_CTYPE_EXTRA_MAP_1))]; | 
|---|
| 540 |  | 
|---|
| 541 | const struct __locale_data _nl_C_LC_CTYPE attribute_hidden = | 
|---|
| 542 | { | 
|---|
| 543 | _nl_C_name, | 
|---|
| 544 | NULL, 0, 0,			/* no file mapped */ | 
|---|
| 545 | { NULL, },			/* no cached data */ | 
|---|
| 546 | UNDELETABLE, | 
|---|
| 547 | 1,		/* Enable transliteration by default.  */ | 
|---|
| 548 | NR_FIXED + NR_CLASSES + NR_MAPS, | 
|---|
| 549 | { | 
|---|
| 550 | /* _NL_CTYPE_CLASS */ | 
|---|
| 551 | { .string = _nl_C_LC_CTYPE_class }, | 
|---|
| 552 | /* _NL_CTYPE_TOUPPER */ | 
|---|
| 553 | { .string = (const char *) _nl_C_LC_CTYPE_toupper }, | 
|---|
| 554 | /* _NL_CTYPE_GAP1 */ | 
|---|
| 555 | { .string = NULL }, | 
|---|
| 556 | /* _NL_CTYPE_TOLOWER */ | 
|---|
| 557 | { .string = (const char *) _nl_C_LC_CTYPE_tolower }, | 
|---|
| 558 | /* _NL_CTYPE_GAP2 */ | 
|---|
| 559 | { .string = NULL }, | 
|---|
| 560 | /* _NL_CTYPE_CLASS32 */ | 
|---|
| 561 | { .string = _nl_C_LC_CTYPE_class32 }, | 
|---|
| 562 | /* _NL_CTYPE_GAP3 */ | 
|---|
| 563 | { .string = NULL }, | 
|---|
| 564 | /* _NL_CTYPE_GAP4 */ | 
|---|
| 565 | { .string = NULL }, | 
|---|
| 566 | /* _NL_CTYPE_GAP5 */ | 
|---|
| 567 | { .string = NULL }, | 
|---|
| 568 | /* _NL_CTYPE_GAP6 */ | 
|---|
| 569 | { .string = NULL }, | 
|---|
| 570 | /* _NL_CTYPE_CLASS_NAMES */ | 
|---|
| 571 | { .string = "upper\0" "lower\0" "alpha\0" "digit\0" "xdigit\0" "space\0" | 
|---|
| 572 | "print\0" "graph\0" "blank\0" "cntrl\0" "punct\0" "alnum\0"}, | 
|---|
| 573 | /* _NL_CTYPE_MAP_NAMES */ | 
|---|
| 574 | { .string = "toupper\0" "tolower\0"}, | 
|---|
| 575 | /* _NL_CTYPE_WIDTH */ | 
|---|
| 576 | { .string = (const char *) _nl_C_LC_CTYPE_width.header }, | 
|---|
| 577 | /* _NL_CTYPE_MB_CUR_MAX */ | 
|---|
| 578 | { .word = 1 }, | 
|---|
| 579 | /* _NL_CTYPE_CODESET_NAME */ | 
|---|
| 580 | { .string = _nl_C_codeset }, | 
|---|
| 581 | /* _NL_CTYPE_TOUPPER32 */ | 
|---|
| 582 | { .string = (const char *) &_nl_C_LC_CTYPE_toupper[128] }, | 
|---|
| 583 | /* _NL_CTYPE_TOLOWER32 */ | 
|---|
| 584 | { .string = (const char *) &_nl_C_LC_CTYPE_tolower[128] }, | 
|---|
| 585 | /* _NL_CTYPE_CLASS_OFFSET */ | 
|---|
| 586 | { .word = NR_FIXED }, | 
|---|
| 587 | /* _NL_CTYPE_MAP_OFFSET */ | 
|---|
| 588 | { .word = NR_FIXED + NR_CLASSES }, | 
|---|
| 589 | /* _NL_CTYPE_INDIGITS_MB_LEN */ | 
|---|
| 590 | { .word = 1 }, | 
|---|
| 591 | /* _NL_CTYPE_INDIGITS0_MB .. _NL_CTYPE_INDIGITS9_MB */ | 
|---|
| 592 | { .string = "0"}, | 
|---|
| 593 | { .string = "1"}, | 
|---|
| 594 | { .string = "2"}, | 
|---|
| 595 | { .string = "3"}, | 
|---|
| 596 | { .string = "4"}, | 
|---|
| 597 | { .string = "5"}, | 
|---|
| 598 | { .string = "6"}, | 
|---|
| 599 | { .string = "7"}, | 
|---|
| 600 | { .string = "8"}, | 
|---|
| 601 | { .string = "9"}, | 
|---|
| 602 | /* _NL_CTYPE_INDIGITS_WC_LEN */ | 
|---|
| 603 | { .word = 1 }, | 
|---|
| 604 | /* _NL_CTYPE_INDIGITS0_WC .. _NL_CTYPE_INDIGITS9_WC */ | 
|---|
| 605 | { .wstr = (uint32_t *) L "0"}, | 
|---|
| 606 | { .wstr = (uint32_t *) L "1"}, | 
|---|
| 607 | { .wstr = (uint32_t *) L "2"}, | 
|---|
| 608 | { .wstr = (uint32_t *) L "3"}, | 
|---|
| 609 | { .wstr = (uint32_t *) L "4"}, | 
|---|
| 610 | { .wstr = (uint32_t *) L "5"}, | 
|---|
| 611 | { .wstr = (uint32_t *) L "6"}, | 
|---|
| 612 | { .wstr = (uint32_t *) L "7"}, | 
|---|
| 613 | { .wstr = (uint32_t *) L "8"}, | 
|---|
| 614 | { .wstr = (uint32_t *) L "9"}, | 
|---|
| 615 | /* _NL_CTYPE_OUTDIGIT0_MB .. _NL_CTYPE_OUTDIGIT9_MB */ | 
|---|
| 616 | { .string = "0"}, | 
|---|
| 617 | { .string = "1"}, | 
|---|
| 618 | { .string = "2"}, | 
|---|
| 619 | { .string = "3"}, | 
|---|
| 620 | { .string = "4"}, | 
|---|
| 621 | { .string = "5"}, | 
|---|
| 622 | { .string = "6"}, | 
|---|
| 623 | { .string = "7"}, | 
|---|
| 624 | { .string = "8"}, | 
|---|
| 625 | { .string = "9"}, | 
|---|
| 626 | /* _NL_CTYPE_OUTDIGIT0_WC .. _NL_CTYPE_OUTDIGIT9_WC */ | 
|---|
| 627 | { .word = L'0' }, | 
|---|
| 628 | { .word = L'1' }, | 
|---|
| 629 | { .word = L'2' }, | 
|---|
| 630 | { .word = L'3' }, | 
|---|
| 631 | { .word = L'4' }, | 
|---|
| 632 | { .word = L'5' }, | 
|---|
| 633 | { .word = L'6' }, | 
|---|
| 634 | { .word = L'7' }, | 
|---|
| 635 | { .word = L'8' }, | 
|---|
| 636 | { .word = L'9' }, | 
|---|
| 637 | /* _NL_CTYPE_TRANSLIT_TAB_SIZE */ | 
|---|
| 638 | { .word = NTRANSLIT }, | 
|---|
| 639 | /* _NL_CTYPE_TRANSLIT_FROM_IDX */ | 
|---|
| 640 | { .wstr = translit_from_idx }, | 
|---|
| 641 | /* _NL_CTYPE_TRANSLIT_FROM_TBL */ | 
|---|
| 642 | { .wstr = (uint32_t *) translit_from_tbl }, | 
|---|
| 643 | /* _NL_CTYPE_TRANSLIT_TO_IDX */ | 
|---|
| 644 | { .wstr = translit_to_idx }, | 
|---|
| 645 | /* _NL_CTYPE_TRANSLIT_TO_TBL */ | 
|---|
| 646 | { .wstr = (uint32_t *) translit_to_tbl }, | 
|---|
| 647 | /* _NL_CTYPE_TRANSLIT_DEFAULT_MISSING_LEN */ | 
|---|
| 648 | { .word = 1 }, | 
|---|
| 649 | /* _NL_CTYPE_TRANSLIT_DEFAULT_MISSING */ | 
|---|
| 650 | { .wstr = (uint32_t *) L "?"}, | 
|---|
| 651 | /* _NL_CTYPE_TRANSLIT_IGNORE_LEN */ | 
|---|
| 652 | { .word = 0 }, | 
|---|
| 653 | /* _NL_CTYPE_TRANSLIT_IGNORE */ | 
|---|
| 654 | { .wstr = NULL }, | 
|---|
| 655 | /* _NL_CTYPE_MAP_TO_NONASCII */ | 
|---|
| 656 | { .word = 0 }, | 
|---|
| 657 | /* _NL_CTYPE_NONASCII_CASE */ | 
|---|
| 658 | { .word = 0 }, | 
|---|
| 659 | /* NR_CLASSES wctype_tables */ | 
|---|
| 660 | { .string = (const char *) _nl_C_LC_CTYPE_class_upper.header }, | 
|---|
| 661 | { .string = (const char *) _nl_C_LC_CTYPE_class_lower.header }, | 
|---|
| 662 | { .string = (const char *) _nl_C_LC_CTYPE_class_alpha.header }, | 
|---|
| 663 | { .string = (const char *) _nl_C_LC_CTYPE_class_digit.header }, | 
|---|
| 664 | { .string = (const char *) _nl_C_LC_CTYPE_class_xdigit.header }, | 
|---|
| 665 | { .string = (const char *) _nl_C_LC_CTYPE_class_space.header }, | 
|---|
| 666 | { .string = (const char *) _nl_C_LC_CTYPE_class_print.header }, | 
|---|
| 667 | { .string = (const char *) _nl_C_LC_CTYPE_class_graph.header }, | 
|---|
| 668 | { .string = (const char *) _nl_C_LC_CTYPE_class_blank.header }, | 
|---|
| 669 | { .string = (const char *) _nl_C_LC_CTYPE_class_cntrl.header }, | 
|---|
| 670 | { .string = (const char *) _nl_C_LC_CTYPE_class_punct.header }, | 
|---|
| 671 | { .string = (const char *) _nl_C_LC_CTYPE_class_alnum.header }, | 
|---|
| 672 | /* NR_MAPS wctrans_tables */ | 
|---|
| 673 | { .string = (const char *) _nl_C_LC_CTYPE_map_toupper.header }, | 
|---|
| 674 | { .string = (const char *) _nl_C_LC_CTYPE_map_tolower.header } | 
|---|
| 675 | } | 
|---|
| 676 | }; | 
|---|
| 677 |  | 
|---|