]>
Commit | Line | Data |
---|---|---|
390955cb UD |
1 | #ifndef _WCTYPE_H |
2 | ||
31341567 | 3 | #ifndef _ISOMAC |
5656e294 RM |
4 | /* We try to get wint_t from <stddef.h>, but not all GCC versions define it |
5 | there. So define it ourselves if it remains undefined. */ | |
6 | # define __need_wint_t | |
7 | # include <stddef.h> | |
8 | # ifndef _WINT_T | |
9 | /* Integral type unchanged by default argument promotions that can | |
10 | hold any value corresponding to members of the extended character | |
11 | set, as well as at least one value that does not correspond to any | |
12 | member of the extended character set. */ | |
13 | # define _WINT_T | |
14 | typedef unsigned int wint_t; | |
15 | # endif | |
16 | ||
17 | /* Need to repeat these prototypes here, as wctype/wctype.h defines all | |
18 | these as macros and thus we couldn't add libc_hidden_proto. */ | |
19 | ||
20 | extern int iswalpha (wint_t __wc); | |
13ece897 | 21 | extern int iswalnum (wint_t __wc); |
5656e294 RM |
22 | extern int iswdigit (wint_t __wc); |
23 | extern int iswlower (wint_t __wc); | |
24 | extern int iswspace (wint_t __wc); | |
25 | extern int iswxdigit (wint_t __wc); | |
26 | extern wint_t towlower (wint_t __wc); | |
27 | extern wint_t towupper (wint_t __wc); | |
28 | ||
29 | libc_hidden_proto (iswalpha) | |
13ece897 | 30 | libc_hidden_proto (iswalnum) |
5656e294 RM |
31 | libc_hidden_proto (iswdigit) |
32 | libc_hidden_proto (iswlower) | |
33 | libc_hidden_proto (iswspace) | |
34 | libc_hidden_proto (iswxdigit) | |
35 | libc_hidden_proto (towlower) | |
36 | libc_hidden_proto (towupper) | |
31341567 | 37 | #endif |
5656e294 | 38 | |
75cd5204 | 39 | #include <wctype/wctype.h> |
390955cb | 40 | |
31341567 | 41 | #ifndef _ISOMAC |
bd7f30a9 | 42 | /* Internal interfaces. */ |
fe559c5e | 43 | extern int __iswspace (wint_t __wc); |
bd7f30a9 | 44 | extern int __iswctype (wint_t __wc, wctype_t __desc); |
a784e502 | 45 | extern wctype_t __wctype (const char *__property); |
7be688b5 | 46 | extern wctrans_t __wctrans (const char *__property); |
bd7f30a9 AJ |
47 | extern wint_t __towctrans (wint_t __wc, wctrans_t __desc); |
48 | ||
da4cfe38 RM |
49 | extern __typeof (iswalnum_l) __iswalnum_l; |
50 | extern __typeof (iswalpha_l) __iswalpha_l; | |
51 | extern __typeof (iswblank_l) __iswblank_l; | |
52 | extern __typeof (iswcntrl_l) __iswcntrl_l; | |
53 | extern __typeof (iswdigit_l) __iswdigit_l; | |
54 | extern __typeof (iswlower_l) __iswlower_l; | |
55 | extern __typeof (iswgraph_l) __iswgraph_l; | |
56 | extern __typeof (iswprint_l) __iswprint_l; | |
57 | extern __typeof (iswpunct_l) __iswpunct_l; | |
58 | extern __typeof (iswspace_l) __iswspace_l; | |
59 | extern __typeof (iswupper_l) __iswupper_l; | |
60 | extern __typeof (iswxdigit_l) __iswxdigit_l; | |
61 | extern __typeof (towlower_l) __towlower_l; | |
62 | extern __typeof (towupper_l) __towupper_l; | |
bb4acb52 JM |
63 | extern __typeof (towlower) __towlower __THROW __attribute_pure__; |
64 | extern __typeof (towupper) __towupper __THROW __attribute_pure__; | |
da4cfe38 | 65 | |
58845a70 | 66 | libc_hidden_proto (__towctrans) |
a20d8dbe UD |
67 | libc_hidden_proto (__iswctype) |
68 | libc_hidden_proto (__iswalnum_l) | |
69 | libc_hidden_proto (__iswalpha_l) | |
70 | libc_hidden_proto (__iswblank_l) | |
71 | libc_hidden_proto (__iswcntrl_l) | |
72 | libc_hidden_proto (__iswdigit_l) | |
73 | libc_hidden_proto (__iswlower_l) | |
74 | libc_hidden_proto (__iswgraph_l) | |
75 | libc_hidden_proto (__iswprint_l) | |
76 | libc_hidden_proto (__iswpunct_l) | |
77 | libc_hidden_proto (__iswspace_l) | |
78 | libc_hidden_proto (__iswupper_l) | |
79 | libc_hidden_proto (__iswxdigit_l) | |
80 | libc_hidden_proto (__towlower_l) | |
81 | libc_hidden_proto (__towupper_l) | |
bb4acb52 JM |
82 | libc_hidden_proto (__towlower) |
83 | libc_hidden_proto (__towupper) | |
390955cb | 84 | |
f83aa16c UD |
85 | /* The spec says that isdigit must only match the decimal digits. We |
86 | can check this without a memory access. */ | |
4f41c682 | 87 | # if IS_IN (libc) |
f83aa16c UD |
88 | # undef iswdigit |
89 | # define iswdigit(c) ({ wint_t __c = (c); __c >= L'0' && __c <= L'9'; }) | |
90 | # undef iswdigit_l | |
91 | # define iswdigit_l(c, l) ({ wint_t __c = (c); __c >= L'0' && __c <= L'9'; }) | |
92 | # undef __iswdigit_l | |
93 | # define __iswdigit_l(c, l) ({ wint_t __c = (c); __c >= L'0' && __c <= L'9'; }) | |
94 | # endif | |
95 | ||
390955cb | 96 | #endif |
31341567 | 97 | #endif |