1 #ifndef _CTYPE_H_
2 #define _CTYPE_H_
3 
4 #include "_ansi.h"
5 
6 _BEGIN_STD_C
7 
8 int _EXFUN(isalnum, (int __c));
9 int _EXFUN(isalpha, (int __c));
10 int _EXFUN(iscntrl, (int __c));
11 int _EXFUN(isdigit, (int __c));
12 int _EXFUN(isgraph, (int __c));
13 int _EXFUN(islower, (int __c));
14 int _EXFUN(isprint, (int __c));
15 int _EXFUN(ispunct, (int __c));
16 int _EXFUN(isspace, (int __c));
17 int _EXFUN(isupper, (int __c));
18 int _EXFUN(isxdigit,(int __c));
19 int _EXFUN(tolower, (int __c));
20 int _EXFUN(toupper, (int __c));
21 
22 #ifndef __STRICT_ANSI__
23 int _EXFUN(isblank, (int __c));
24 int _EXFUN(isascii, (int __c));
25 int _EXFUN(toascii, (int __c));
26 int _EXFUN(_tolower, (int __c));
27 int _EXFUN(_toupper, (int __c));
28 #endif
29 
30 #define	_U	01
31 #define	_L	02
32 #define	_N	04
33 #define	_S	010
34 #define _P	020
35 #define _C	040
36 #define _X	0100
37 #define	_B	0200
38 
39 extern	__IMPORT _CONST char	_ctype_[];
40 
41 #ifndef __cplusplus
42 #define	isalpha(c)	((_ctype_+1)[(unsigned)(c)]&(_U|_L))
43 #define	isupper(c)	((_ctype_+1)[(unsigned)(c)]&_U)
44 #define	islower(c)	((_ctype_+1)[(unsigned)(c)]&_L)
45 #define	isdigit(c)	((_ctype_+1)[(unsigned)(c)]&_N)
46 #define	isxdigit(c)	((_ctype_+1)[(unsigned)(c)]&(_X|_N))
47 #define	isspace(c)	((_ctype_+1)[(unsigned)(c)]&_S)
48 #define ispunct(c)	((_ctype_+1)[(unsigned)(c)]&_P)
49 #define isalnum(c)	((_ctype_+1)[(unsigned)(c)]&(_U|_L|_N))
50 #define isprint(c)	((_ctype_+1)[(unsigned)(c)]&(_P|_U|_L|_N|_B))
51 #define	isgraph(c)	((_ctype_+1)[(unsigned)(c)]&(_P|_U|_L|_N))
52 #define iscntrl(c)	((_ctype_+1)[(unsigned)(c)]&_C)
53 /* Non-gcc versions will get the library versions, and will be
54    slightly slower */
55 #ifdef __GNUC__
56 # define toupper(c) \
57 	__extension__ ({ int __x = (c); islower(__x) ? (__x - 'a' + 'A') : __x;})
58 # define tolower(c) \
59 	__extension__ ({ int __x = (c); isupper(__x) ? (__x - 'A' + 'a') : __x;})
60 #endif
61 #endif /* !__cplusplus */
62 
63 #ifndef __STRICT_ANSI__
64 #define isascii(c)	((unsigned)(c)<=0177)
65 #define toascii(c)	((c)&0177)
66 #endif
67 
68 _END_STD_C
69 
70 #endif /* _CTYPE_H_ */
71