xref: /plan9/sys/include/ape/ctype.h (revision 9a747e4fd48b9f4522c70c07e8f882a15030f964)
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