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