13e12c5d1SDavid du Colombier #ifndef __CTYPE 23e12c5d1SDavid du Colombier #define __CTYPE 33e12c5d1SDavid du Colombier #pragma lib "/$M/lib/ape/libap.a" 43e12c5d1SDavid du Colombier 53e12c5d1SDavid du Colombier #ifdef __cplusplus 63e12c5d1SDavid du Colombier extern "C" { 73e12c5d1SDavid du Colombier #endif 83e12c5d1SDavid du Colombier 93e12c5d1SDavid du Colombier extern int isalnum(int); 103e12c5d1SDavid du Colombier extern int isalpha(int); 113e12c5d1SDavid du Colombier extern int iscntrl(int); 123e12c5d1SDavid du Colombier extern int isdigit(int); 133e12c5d1SDavid du Colombier extern int isgraph(int); 143e12c5d1SDavid du Colombier extern int islower(int); 153e12c5d1SDavid du Colombier extern int isprint(int); 163e12c5d1SDavid du Colombier extern int ispunct(int); 173e12c5d1SDavid du Colombier extern int isspace(int); 183e12c5d1SDavid du Colombier extern int isupper(int); 193e12c5d1SDavid du Colombier extern int isxdigit(int); 203e12c5d1SDavid du Colombier extern int tolower(int); 213e12c5d1SDavid du Colombier extern int toupper(int); 223e12c5d1SDavid du Colombier 233e12c5d1SDavid du Colombier #ifdef __cplusplus 243e12c5d1SDavid du Colombier } 253e12c5d1SDavid du Colombier #endif 26*9a747e4fSDavid du Colombier enum 27*9a747e4fSDavid du Colombier { 28*9a747e4fSDavid du Colombier _ISupper = 01, /* UPPERCASE. */ 29*9a747e4fSDavid du Colombier _ISlower = 02, /* lowercase. */ 30*9a747e4fSDavid du Colombier _ISdigit = 04, /* Numeric. */ 31*9a747e4fSDavid du Colombier _ISspace = 010, /* Whitespace. */ 32*9a747e4fSDavid du Colombier _ISpunct = 020, /* Punctuation. */ 33*9a747e4fSDavid du Colombier _IScntrl = 040, /* Control character. */ 34*9a747e4fSDavid du Colombier _ISblank = 0100, /* Blank (usually SPC and TAB). */ 35*9a747e4fSDavid du Colombier _ISxdigit = 0200, /* Hexadecimal numeric. */ 36*9a747e4fSDavid du Colombier }; 373e12c5d1SDavid du Colombier 383e12c5d1SDavid du Colombier extern unsigned char _ctype[]; 39*9a747e4fSDavid du Colombier #define isalnum(c) (_ctype[(unsigned char)(c)]&(_ISupper|_ISlower|_ISdigit)) 40*9a747e4fSDavid du Colombier #define isalpha(c) (_ctype[(unsigned char)(c)]&(_ISupper|_ISlower)) 41*9a747e4fSDavid du Colombier #define iscntrl(c) (_ctype[(unsigned char)(c)]&_IScntrl) 42*9a747e4fSDavid du Colombier #define isdigit(c) (_ctype[(unsigned char)(c)]&_ISdigit) 43*9a747e4fSDavid du Colombier #define isgraph(c) (_ctype[(unsigned char)(c)]&(_ISpunct|_ISupper|_ISlower|_ISdigit)) 44*9a747e4fSDavid du Colombier #define islower(c) (_ctype[(unsigned char)(c)]&_ISlower) 45*9a747e4fSDavid du Colombier #define isprint(c) (_ctype[(unsigned char)(c)]&(_ISpunct|_ISupper|_ISlower|_ISdigit|_ISblank)) 46*9a747e4fSDavid du Colombier #define ispunct(c) (_ctype[(unsigned char)(c)]&_ISpunct) 47*9a747e4fSDavid du Colombier #define isspace(c) (_ctype[(unsigned char)(c)]&_ISspace) 48*9a747e4fSDavid du Colombier #define isupper(c) (_ctype[(unsigned char)(c)]&_ISupper) 49*9a747e4fSDavid du Colombier #define isxdigit(c) (_ctype[(unsigned char)(c)]&_ISxdigit) 503e12c5d1SDavid du Colombier 51219b2ee8SDavid du Colombier #ifdef _BSD_EXTENSION 52219b2ee8SDavid du Colombier #define isascii(c) (((unsigned int)(c))<0x80) 53219b2ee8SDavid du Colombier #endif 54219b2ee8SDavid du Colombier 553e12c5d1SDavid du Colombier #endif /* __CTYPE */ 56