xref: /plan9/sys/include/ctype.h (revision 80ee5cbfe36716af62da8896207e9763b8e3d760)
1219b2ee8SDavid du Colombier #pragma	src	"/sys/src/libc/port"
23e12c5d1SDavid du Colombier #pragma	lib	"libc.a"
33e12c5d1SDavid du Colombier 
43e12c5d1SDavid du Colombier #define	_U	01
53e12c5d1SDavid du Colombier #define	_L	02
63e12c5d1SDavid du Colombier #define	_N	04
73e12c5d1SDavid du Colombier #define	_S	010
83e12c5d1SDavid du Colombier #define	_P	020
93e12c5d1SDavid du Colombier #define	_C	040
103e12c5d1SDavid du Colombier #define	_B	0100
113e12c5d1SDavid du Colombier #define	_X	0200
123e12c5d1SDavid du Colombier 
133e12c5d1SDavid du Colombier extern unsigned char	_ctype[];
143e12c5d1SDavid du Colombier 
15*80ee5cbfSDavid du Colombier #define	isalpha(c)	(_ctype[(unsigned char)(c)]&(_U|_L))
16*80ee5cbfSDavid du Colombier #define	isupper(c)	(_ctype[(unsigned char)(c)]&_U)
17*80ee5cbfSDavid du Colombier #define	islower(c)	(_ctype[(unsigned char)(c)]&_L)
18*80ee5cbfSDavid du Colombier #define	isdigit(c)	(_ctype[(unsigned char)(c)]&_N)
19*80ee5cbfSDavid du Colombier #define	isxdigit(c)	(_ctype[(unsigned char)(c)]&_X)
20*80ee5cbfSDavid du Colombier #define	isspace(c)	(_ctype[(unsigned char)(c)]&_S)
21*80ee5cbfSDavid du Colombier #define	ispunct(c)	(_ctype[(unsigned char)(c)]&_P)
22*80ee5cbfSDavid du Colombier #define	isalnum(c)	(_ctype[(unsigned char)(c)]&(_U|_L|_N))
23*80ee5cbfSDavid du Colombier #define	isprint(c)	(_ctype[(unsigned char)(c)]&(_P|_U|_L|_N|_B))
24*80ee5cbfSDavid du Colombier #define	isgraph(c)	(_ctype[(unsigned char)(c)]&(_P|_U|_L|_N))
25*80ee5cbfSDavid du Colombier #define	iscntrl(c)	(_ctype[(unsigned char)(c)]&_C)
263e12c5d1SDavid du Colombier #define	isascii(c)	((unsigned char)(c)<=0177)
273e12c5d1SDavid du Colombier #define	_toupper(c)	((c)-'a'+'A')
283e12c5d1SDavid du Colombier #define	_tolower(c)	((c)-'A'+'a')
293e12c5d1SDavid du Colombier #define	toascii(c)	((c)&0177)
30