#ifndef _CTYPE_H #define _CTYPE_H #ifdef __cplusplus extern "C" { #endif //#include int isalnum(int); int isalpha(int); int isblank(int); int iscntrl(int); int isdigit(int); int isgraph(int); int islower(int); int isprint(int); int ispunct(int); int isspace(int); int isupper(int); int isxdigit(int); int tolower(int); int toupper(int); #ifndef __cplusplus static __inline int __isspace(int _c) { return _c == ' ' || (unsigned)_c-'\t' < 5; } #define isalpha(a) ( (((unsigned)(a)|32)-'a') < 26) #define isdigit(a) ( ((unsigned)(a)-'0') < 10) #define islower(a) ( ((unsigned)(a)-'a') < 26) #define isupper(a) ( ((unsigned)(a)-'A') < 26) #define isprint(a) ( ((unsigned)(a)-0x20) < 0x5f) #define isgraph(a) ( ((unsigned)(a)-0x21) < 0x5e) #define isspace(c) ((c)==' ' || (c)=='\t' || (c)=='\n') #endif #ifdef _PLAN9_SOURCE #define tolower(a) ((a)|0x20) #define toupper(a) ((a)&0x5f) #define isalnum(a) (isalpha((a)) || isdigit((a))) #endif /* prevent _XOPEN_SOURCE (default in features.h) triggering this conditional compile */ #if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \ || /* defined(_XOPEN_SOURCE) ||*/ defined(_GNU_SOURCE) \ || defined(_BSD_SOURCE) #define __NEED_locale_t #include int isalnum_l(int, locale_t); int isalpha_l(int, locale_t); int isblank_l(int, locale_t); int iscntrl_l(int, locale_t); int isdigit_l(int, locale_t); int isgraph_l(int, locale_t); int islower_l(int, locale_t); int isprint_l(int, locale_t); int ispunct_l(int, locale_t); int isspace_l(int, locale_t); int isupper_l(int, locale_t); int isxdigit_l(int, locale_t); int tolower_l(int, locale_t); int toupper_l(int, locale_t); int isascii(int); int toascii(int); #define _tolower(a) ((a)|0x20) #define _toupper(a) ((a)&0x5f) #define isascii(a) (0 ? isascii(a) : (unsigned)(a) < 128) #endif #ifdef __cplusplus } #endif #endif