1 #ifndef _CTYPE_H_ 2 #ifdef __cplusplus 3 extern "C" { 4 #endif 5 #define _CTYPE_H_ 6 7 #include "_ansi.h" 8 9 int _EXFUN(isalnum, (int __c)); 10 int _EXFUN(isalpha, (int __c)); 11 int _EXFUN(iscntrl, (int __c)); 12 int _EXFUN(isdigit, (int __c)); 13 int _EXFUN(isgraph, (int __c)); 14 int _EXFUN(islower, (int __c)); 15 int _EXFUN(isprint, (int __c)); 16 int _EXFUN(ispunct, (int __c)); 17 int _EXFUN(isspace, (int __c)); 18 int _EXFUN(isupper, (int __c)); 19 int _EXFUN(isxdigit,(int __c)); 20 int _EXFUN(tolower, (int __c)); 21 int _EXFUN(toupper, (int __c)); 22 23 #ifndef __STRICT_ANSI__ 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 #define isalpha(c) ((_ctype_+1)[(unsigned)(c)]&(_U|_L)) 42 #define isupper(c) ((_ctype_+1)[(unsigned)(c)]&_U) 43 #define islower(c) ((_ctype_+1)[(unsigned)(c)]&_L) 44 #define isdigit(c) ((_ctype_+1)[(unsigned)(c)]&_N) 45 #define isxdigit(c) ((_ctype_+1)[(unsigned)(c)]&(_X|_N)) 46 #define isspace(c) ((_ctype_+1)[(unsigned)(c)]&_S) 47 #define ispunct(c) ((_ctype_+1)[(unsigned)(c)]&_P) 48 #define isalnum(c) ((_ctype_+1)[(unsigned)(c)]&(_U|_L|_N)) 49 #define isprint(c) ((_ctype_+1)[(unsigned)(c)]&(_P|_U|_L|_N|_B)) 50 #define isgraph(c) ((_ctype_+1)[(unsigned)(c)]&(_P|_U|_L|_N)) 51 #define iscntrl(c) ((_ctype_+1)[(unsigned)(c)]&_C) 52 /* Non-gcc versions will get the library versions, and will be 53 slightly slower */ 54 #ifdef __GNUC__ 55 # define toupper(c) \ 56 __extension__ ({ int __x = (c); islower(__x) ? (__x - 'a' + 'A') : __x;}) 57 # define tolower(c) \ 58 __extension__ ({ int __x = (c); isupper(__x) ? (__x - 'A' + 'a') : __x;}) 59 #endif 60 61 #ifndef __STRICT_ANSI__ 62 #define isascii(c) ((unsigned)(c)<=0177) 63 #define toascii(c) ((c)&0177) 64 #endif 65 66 #ifdef __cplusplus 67 } 68 #endif 69 #endif /* _CTYPE_H_ */ |