1#ifndef	_CTYPE_H
2#define	_CTYPE_H
3
4#ifdef __cplusplus
5extern "C" {
6#endif
7
8#include <features.h>
9
10int   isalnum(int);
11int   isalpha(int);
12int   isblank(int);
13int   iscntrl(int);
14int   isdigit(int);
15int   isgraph(int);
16int   islower(int);
17int   isprint(int);
18int   ispunct(int);
19int   isspace(int);
20int   isupper(int);
21int   isxdigit(int);
22int   tolower(int);
23int   toupper(int);
24
25#ifndef __cplusplus
26static __inline int __isspace(int _c)
27{
28	return _c == ' ' || (unsigned)_c-'\t' < 5;
29}
30
31#define isalpha(a) (0 ? isalpha(a) : (((unsigned)(a)|32)-'a') < 26)
32#define isdigit(a) (0 ? isdigit(a) : ((unsigned)(a)-'0') < 10)
33#define islower(a) (0 ? islower(a) : ((unsigned)(a)-'a') < 26)
34#define isupper(a) (0 ? isupper(a) : ((unsigned)(a)-'A') < 26)
35#define isprint(a) (0 ? isprint(a) : ((unsigned)(a)-0x20) < 0x5f)
36#define isgraph(a) (0 ? isgraph(a) : ((unsigned)(a)-0x21) < 0x5e)
37#define isspace(a) __isspace(a)
38#endif
39
40
41#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \
42 || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) \
43 || defined(_BSD_SOURCE)
44
45#define __NEED_locale_t
46#include <bits/alltypes.h>
47
48int   isalnum_l(int, locale_t);
49int   isalpha_l(int, locale_t);
50int   isblank_l(int, locale_t);
51int   iscntrl_l(int, locale_t);
52int   isdigit_l(int, locale_t);
53int   isgraph_l(int, locale_t);
54int   islower_l(int, locale_t);
55int   isprint_l(int, locale_t);
56int   ispunct_l(int, locale_t);
57int   isspace_l(int, locale_t);
58int   isupper_l(int, locale_t);
59int   isxdigit_l(int, locale_t);
60int   tolower_l(int, locale_t);
61int   toupper_l(int, locale_t);
62
63int   isascii(int);
64int   toascii(int);
65#define _tolower(a) ((a)|0x20)
66#define _toupper(a) ((a)&0x5f)
67#define isascii(a) (0 ? isascii(a) : (unsigned)(a) < 128)
68
69#endif
70
71#ifdef __cplusplus
72}
73#endif
74
75#endif
76