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: