Line data Source code
1 : /* -*- buffer-read-only: t -*- vi: set ro: */
2 : /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
3 : #line 1
4 : /* Character handling in C locale.
5 :
6 : Copyright 2000-2003, 2006 Free Software Foundation, Inc.
7 :
8 : This program is free software; you can redistribute it and/or modify
9 : it under the terms of the GNU General Public License as published by
10 : the Free Software Foundation; either version 3 of the License, or
11 : (at your option) any later version.
12 :
13 : This program is distributed in the hope that it will be useful,
14 : but WITHOUT ANY WARRANTY; without even the implied warranty of
15 : MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 : GNU General Public License for more details.
17 :
18 : You should have received a copy of the GNU General Public License
19 : along with this program; if not, write to the Free Software Foundation,
20 : Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
21 :
22 : #include <config.h>
23 :
24 : /* Specification. */
25 : #define NO_C_CTYPE_MACROS
26 : #include "c-ctype.h"
27 :
28 0 : /* The function isascii is not locale dependent. Its use in EBCDIC is
29 : questionable. */
30 0 : bool
31 : c_isascii (int c)
32 : {
33 : return (c >= 0x00 && c <= 0x7f);
34 0 : }
35 :
36 : bool
37 : c_isalnum (int c)
38 : {
39 0 : #if C_CTYPE_CONSECUTIVE_DIGITS \
40 0 : && C_CTYPE_CONSECUTIVE_UPPERCASE && C_CTYPE_CONSECUTIVE_LOWERCASE
41 : #if C_CTYPE_ASCII
42 : return ((c >= '0' && c <= '9')
43 : || ((c & ~0x20) >= 'A' && (c & ~0x20) <= 'Z'));
44 : #else
45 : return ((c >= '0' && c <= '9')
46 : || (c >= 'A' && c <= 'Z')
47 : || (c >= 'a' && c <= 'z'));
48 : #endif
49 : #else
50 : switch (c)
51 : {
52 : case '0': case '1': case '2': case '3': case '4': case '5':
53 : case '6': case '7': case '8': case '9':
54 : case 'A': case 'B': case 'C': case 'D': case 'E': case 'F':
55 : case 'G': case 'H': case 'I': case 'J': case 'K': case 'L':
56 : case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R':
57 : case 'S': case 'T': case 'U': case 'V': case 'W': case 'X':
58 : case 'Y': case 'Z':
59 : case 'a': case 'b': case 'c': case 'd': case 'e': case 'f':
60 : case 'g': case 'h': case 'i': case 'j': case 'k': case 'l':
61 : case 'm': case 'n': case 'o': case 'p': case 'q': case 'r':
62 : case 's': case 't': case 'u': case 'v': case 'w': case 'x':
63 : case 'y': case 'z':
64 : return 1;
65 : default:
66 : return 0;
67 : }
68 : #endif
69 0 : }
70 :
71 : bool
72 : c_isalpha (int c)
73 0 : {
74 : #if C_CTYPE_CONSECUTIVE_UPPERCASE && C_CTYPE_CONSECUTIVE_LOWERCASE
75 : #if C_CTYPE_ASCII
76 : return ((c & ~0x20) >= 'A' && (c & ~0x20) <= 'Z');
77 : #else
78 : return ((c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z'));
79 : #endif
80 : #else
81 : switch (c)
82 : {
83 : case 'A': case 'B': case 'C': case 'D': case 'E': case 'F':
84 : case 'G': case 'H': case 'I': case 'J': case 'K': case 'L':
85 : case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R':
86 : case 'S': case 'T': case 'U': case 'V': case 'W': case 'X':
87 : case 'Y': case 'Z':
88 : case 'a': case 'b': case 'c': case 'd': case 'e': case 'f':
89 : case 'g': case 'h': case 'i': case 'j': case 'k': case 'l':
90 : case 'm': case 'n': case 'o': case 'p': case 'q': case 'r':
91 : case 's': case 't': case 'u': case 'v': case 'w': case 'x':
92 : case 'y': case 'z':
93 : return 1;
94 : default:
95 : return 0;
96 : }
97 : #endif
98 0 : }
99 :
100 0 : bool
101 : c_isblank (int c)
102 : {
103 : return (c == ' ' || c == '\t');
104 0 : }
105 :
106 : bool
107 0 : c_iscntrl (int c)
108 : {
109 : #if C_CTYPE_ASCII
110 : return ((c & ~0x1f) == 0 || c == 0x7f);
111 : #else
112 : switch (c)
113 : {
114 : case ' ': case '!': case '"': case '#': case '$': case '%':
115 : case '&': case '\'': case '(': case ')': case '*': case '+':
116 : case ',': case '-': case '.': case '/':
117 : case '0': case '1': case '2': case '3': case '4': case '5':
118 : case '6': case '7': case '8': case '9':
119 : case ':': case ';': case '<': case '=': case '>': case '?':
120 : case '@':
121 : case 'A': case 'B': case 'C': case 'D': case 'E': case 'F':
122 : case 'G': case 'H': case 'I': case 'J': case 'K': case 'L':
123 : case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R':
124 : case 'S': case 'T': case 'U': case 'V': case 'W': case 'X':
125 : case 'Y': case 'Z':
126 : case '[': case '\\': case ']': case '^': case '_': case '`':
127 : case 'a': case 'b': case 'c': case 'd': case 'e': case 'f':
128 : case 'g': case 'h': case 'i': case 'j': case 'k': case 'l':
129 : case 'm': case 'n': case 'o': case 'p': case 'q': case 'r':
130 : case 's': case 't': case 'u': case 'v': case 'w': case 'x':
131 : case 'y': case 'z':
132 : case '{': case '|': case '}': case '~':
133 : return 0;
134 : default:
135 : return 1;
136 : }
137 : #endif
138 0 : }
139 :
140 : bool
141 0 : c_isdigit (int c)
142 : {
143 : #if C_CTYPE_CONSECUTIVE_DIGITS
144 : return (c >= '0' && c <= '9');
145 : #else
146 : switch (c)
147 : {
148 : case '0': case '1': case '2': case '3': case '4': case '5':
149 : case '6': case '7': case '8': case '9':
150 : return 1;
151 : default:
152 : return 0;
153 : }
154 : #endif
155 0 : }
156 :
157 : bool
158 0 : c_islower (int c)
159 : {
160 : #if C_CTYPE_CONSECUTIVE_LOWERCASE
161 : return (c >= 'a' && c <= 'z');
162 : #else
163 : switch (c)
164 : {
165 : case 'a': case 'b': case 'c': case 'd': case 'e': case 'f':
166 : case 'g': case 'h': case 'i': case 'j': case 'k': case 'l':
167 : case 'm': case 'n': case 'o': case 'p': case 'q': case 'r':
168 : case 's': case 't': case 'u': case 'v': case 'w': case 'x':
169 : case 'y': case 'z':
170 : return 1;
171 : default:
172 : return 0;
173 : }
174 : #endif
175 0 : }
176 :
177 : bool
178 0 : c_isgraph (int c)
179 : {
180 : #if C_CTYPE_ASCII
181 : return (c >= '!' && c <= '~');
182 : #else
183 : switch (c)
184 : {
185 : case '!': case '"': case '#': case '$': case '%': case '&':
186 : case '\'': case '(': case ')': case '*': case '+': case ',':
187 : case '-': case '.': case '/':
188 : case '0': case '1': case '2': case '3': case '4': case '5':
189 : case '6': case '7': case '8': case '9':
190 : case ':': case ';': case '<': case '=': case '>': case '?':
191 : case '@':
192 : case 'A': case 'B': case 'C': case 'D': case 'E': case 'F':
193 : case 'G': case 'H': case 'I': case 'J': case 'K': case 'L':
194 : case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R':
195 : case 'S': case 'T': case 'U': case 'V': case 'W': case 'X':
196 : case 'Y': case 'Z':
197 : case '[': case '\\': case ']': case '^': case '_': case '`':
198 : case 'a': case 'b': case 'c': case 'd': case 'e': case 'f':
199 : case 'g': case 'h': case 'i': case 'j': case 'k': case 'l':
200 : case 'm': case 'n': case 'o': case 'p': case 'q': case 'r':
201 : case 's': case 't': case 'u': case 'v': case 'w': case 'x':
202 : case 'y': case 'z':
203 : case '{': case '|': case '}': case '~':
204 : return 1;
205 : default:
206 : return 0;
207 : }
208 : #endif
209 0 : }
210 :
211 : bool
212 0 : c_isprint (int c)
213 : {
214 : #if C_CTYPE_ASCII
215 : return (c >= ' ' && c <= '~');
216 : #else
217 : switch (c)
218 : {
219 : case ' ': case '!': case '"': case '#': case '$': case '%':
220 : case '&': case '\'': case '(': case ')': case '*': case '+':
221 : case ',': case '-': case '.': case '/':
222 : case '0': case '1': case '2': case '3': case '4': case '5':
223 : case '6': case '7': case '8': case '9':
224 : case ':': case ';': case '<': case '=': case '>': case '?':
225 : case '@':
226 : case 'A': case 'B': case 'C': case 'D': case 'E': case 'F':
227 : case 'G': case 'H': case 'I': case 'J': case 'K': case 'L':
228 : case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R':
229 : case 'S': case 'T': case 'U': case 'V': case 'W': case 'X':
230 : case 'Y': case 'Z':
231 : case '[': case '\\': case ']': case '^': case '_': case '`':
232 : case 'a': case 'b': case 'c': case 'd': case 'e': case 'f':
233 : case 'g': case 'h': case 'i': case 'j': case 'k': case 'l':
234 : case 'm': case 'n': case 'o': case 'p': case 'q': case 'r':
235 : case 's': case 't': case 'u': case 'v': case 'w': case 'x':
236 : case 'y': case 'z':
237 : case '{': case '|': case '}': case '~':
238 : return 1;
239 : default:
240 : return 0;
241 : }
242 : #endif
243 0 : }
244 :
245 : bool
246 0 : c_ispunct (int c)
247 0 : {
248 0 : #if C_CTYPE_ASCII
249 : return ((c >= '!' && c <= '~')
250 : && !((c >= '0' && c <= '9')
251 : || ((c & ~0x20) >= 'A' && (c & ~0x20) <= 'Z')));
252 : #else
253 : switch (c)
254 : {
255 : case '!': case '"': case '#': case '$': case '%': case '&':
256 : case '\'': case '(': case ')': case '*': case '+': case ',':
257 : case '-': case '.': case '/':
258 : case ':': case ';': case '<': case '=': case '>': case '?':
259 : case '@':
260 : case '[': case '\\': case ']': case '^': case '_': case '`':
261 : case '{': case '|': case '}': case '~':
262 : return 1;
263 : default:
264 : return 0;
265 : }
266 : #endif
267 0 : }
268 :
269 0 : bool
270 0 : c_isspace (int c)
271 : {
272 : return (c == ' ' || c == '\t'
273 : || c == '\n' || c == '\v' || c == '\f' || c == '\r');
274 0 : }
275 :
276 : bool
277 0 : c_isupper (int c)
278 : {
279 : #if C_CTYPE_CONSECUTIVE_UPPERCASE
280 : return (c >= 'A' && c <= 'Z');
281 : #else
282 : switch (c)
283 : {
284 : case 'A': case 'B': case 'C': case 'D': case 'E': case 'F':
285 : case 'G': case 'H': case 'I': case 'J': case 'K': case 'L':
286 : case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R':
287 : case 'S': case 'T': case 'U': case 'V': case 'W': case 'X':
288 : case 'Y': case 'Z':
289 : return 1;
290 : default:
291 : return 0;
292 : }
293 : #endif
294 0 : }
295 :
296 : bool
297 : c_isxdigit (int c)
298 : {
299 0 : #if C_CTYPE_CONSECUTIVE_DIGITS \
300 0 : && C_CTYPE_CONSECUTIVE_UPPERCASE && C_CTYPE_CONSECUTIVE_LOWERCASE
301 : #if C_CTYPE_ASCII
302 : return ((c >= '0' && c <= '9')
303 : || ((c & ~0x20) >= 'A' && (c & ~0x20) <= 'F'));
304 : #else
305 : return ((c >= '0' && c <= '9')
306 : || (c >= 'A' && c <= 'F')
307 : || (c >= 'a' && c <= 'f'));
308 : #endif
309 : #else
310 : switch (c)
311 : {
312 : case '0': case '1': case '2': case '3': case '4': case '5':
313 : case '6': case '7': case '8': case '9':
314 : case 'A': case 'B': case 'C': case 'D': case 'E': case 'F':
315 : case 'a': case 'b': case 'c': case 'd': case 'e': case 'f':
316 : return 1;
317 : default:
318 : return 0;
319 : }
320 : #endif
321 3016 : }
322 :
323 : int
324 3016 : c_tolower (int c)
325 : {
326 : #if C_CTYPE_CONSECUTIVE_UPPERCASE && C_CTYPE_CONSECUTIVE_LOWERCASE
327 : return (c >= 'A' && c <= 'Z' ? c - 'A' + 'a' : c);
328 : #else
329 : switch (c)
330 : {
331 : case 'A': return 'a';
332 : case 'B': return 'b';
333 : case 'C': return 'c';
334 : case 'D': return 'd';
335 : case 'E': return 'e';
336 : case 'F': return 'f';
337 : case 'G': return 'g';
338 : case 'H': return 'h';
339 : case 'I': return 'i';
340 : case 'J': return 'j';
341 : case 'K': return 'k';
342 : case 'L': return 'l';
343 : case 'M': return 'm';
344 : case 'N': return 'n';
345 : case 'O': return 'o';
346 : case 'P': return 'p';
347 : case 'Q': return 'q';
348 : case 'R': return 'r';
349 : case 'S': return 's';
350 : case 'T': return 't';
351 : case 'U': return 'u';
352 : case 'V': return 'v';
353 : case 'W': return 'w';
354 : case 'X': return 'x';
355 : case 'Y': return 'y';
356 : case 'Z': return 'z';
357 : default: return c;
358 : }
359 : #endif
360 0 : }
361 :
362 : int
363 0 : c_toupper (int c)
364 : {
365 : #if C_CTYPE_CONSECUTIVE_UPPERCASE && C_CTYPE_CONSECUTIVE_LOWERCASE
366 : return (c >= 'a' && c <= 'z' ? c - 'a' + 'A' : c);
367 : #else
368 : switch (c)
369 : {
370 : case 'a': return 'A';
371 : case 'b': return 'B';
372 : case 'c': return 'C';
373 : case 'd': return 'D';
374 : case 'e': return 'E';
375 : case 'f': return 'F';
376 : case 'g': return 'G';
377 : case 'h': return 'H';
378 : case 'i': return 'I';
379 : case 'j': return 'J';
380 : case 'k': return 'K';
381 : case 'l': return 'L';
382 : case 'm': return 'M';
383 : case 'n': return 'N';
384 : case 'o': return 'O';
385 : case 'p': return 'P';
386 : case 'q': return 'Q';
387 : case 'r': return 'R';
388 : case 's': return 'S';
389 : case 't': return 'T';
390 : case 'u': return 'U';
391 : case 'v': return 'V';
392 : case 'w': return 'W';
393 : case 'x': return 'X';
394 : case 'y': return 'Y';
395 : case 'z': return 'Z';
396 : default: return c;
397 : }
398 : #endif
399 : }
|