1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19: #define CTYPE_EXTERN_INLINE
20: #include <ctype.h>
21: #include <locale/localeinfo.h>
22:
23: __libc_tsd_define (, CTYPE_B)
24: __libc_tsd_define (, CTYPE_TOLOWER)
25: __libc_tsd_define (, CTYPE_TOUPPER)
26:
27:
28: #include <shlib-compat.h>
29: #if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_3)
30:
31:
32: extern const char _nl_C_LC_CTYPE_class[] attribute_hidden;
33: extern const char _nl_C_LC_CTYPE_class32[] attribute_hidden;
34: extern const char _nl_C_LC_CTYPE_toupper[] attribute_hidden;
35: extern const char _nl_C_LC_CTYPE_tolower[] attribute_hidden;
36: extern const char _nl_C_LC_CTYPE_class_upper[] attribute_hidden;
37: extern const char _nl_C_LC_CTYPE_class_lower[] attribute_hidden;
38: extern const char _nl_C_LC_CTYPE_class_alpha[] attribute_hidden;
39: extern const char _nl_C_LC_CTYPE_class_digit[] attribute_hidden;
40: extern const char _nl_C_LC_CTYPE_class_xdigit[] attribute_hidden;
41: extern const char _nl_C_LC_CTYPE_class_space[] attribute_hidden;
42: extern const char _nl_C_LC_CTYPE_class_print[] attribute_hidden;
43: extern const char _nl_C_LC_CTYPE_class_graph[] attribute_hidden;
44: extern const char _nl_C_LC_CTYPE_class_blank[] attribute_hidden;
45: extern const char _nl_C_LC_CTYPE_class_cntrl[] attribute_hidden;
46: extern const char _nl_C_LC_CTYPE_class_punct[] attribute_hidden;
47: extern const char _nl_C_LC_CTYPE_class_alnum[] attribute_hidden;
48:
49: #define b(t,x,o) (((const t *) _nl_C_LC_CTYPE_##x) + o)
50:
51: const unsigned short int *__ctype_b = b (unsigned short int, class, 128);
52: const __uint32_t *__ctype32_b = b (__uint32_t, class32, 0);
53: const __int32_t *__ctype_tolower = b (__int32_t, tolower, 128);
54: const __int32_t *__ctype_toupper = b (__int32_t, toupper, 128);
55: const __uint32_t *__ctype32_tolower = b (__uint32_t, tolower, 128);
56: const __uint32_t *__ctype32_toupper = b (__uint32_t, toupper, 128);
57:
58: compat_symbol (libc, __ctype_b, __ctype_b, GLIBC_2_0);
59: compat_symbol (libc, __ctype_tolower, __ctype_tolower, GLIBC_2_0);
60: compat_symbol (libc, __ctype_toupper, __ctype_toupper, GLIBC_2_0);
61: compat_symbol (libc, __ctype32_b, __ctype32_b, GLIBC_2_0);
62: compat_symbol (libc, __ctype32_tolower, __ctype32_tolower, GLIBC_2_2);
63: compat_symbol (libc, __ctype32_toupper, __ctype32_toupper, GLIBC_2_2);
64:
65: #endif