xref: /dflybsd-src/lib/libssh/openbsd-compat/charclass.h (revision 2c0338ff3a67192f74bc43d411d0fc58c1149708)
1*2c0338ffSzrj /*
2*2c0338ffSzrj  * Public domain, 2008, Todd C. Miller <Todd.Miller@courtesan.com>
3*2c0338ffSzrj  *
4*2c0338ffSzrj  * $OpenBSD: charclass.h,v 1.1 2008/10/01 23:04:13 millert Exp $
5*2c0338ffSzrj  */
6*2c0338ffSzrj 
7*2c0338ffSzrj /* OPENBSD ORIGINAL: lib/libc/gen/charclass.h */
8*2c0338ffSzrj 
9*2c0338ffSzrj /*
10*2c0338ffSzrj  * POSIX character class support for fnmatch() and glob().
11*2c0338ffSzrj  */
12*2c0338ffSzrj static struct cclass {
13*2c0338ffSzrj 	const char *name;
14*2c0338ffSzrj 	int (*isctype)(int);
15*2c0338ffSzrj } cclasses[] = {
16*2c0338ffSzrj 	{ "alnum",	isalnum },
17*2c0338ffSzrj 	{ "alpha",	isalpha },
18*2c0338ffSzrj 	{ "blank",	isblank },
19*2c0338ffSzrj 	{ "cntrl",	iscntrl },
20*2c0338ffSzrj 	{ "digit",	isdigit },
21*2c0338ffSzrj 	{ "graph",	isgraph },
22*2c0338ffSzrj 	{ "lower",	islower },
23*2c0338ffSzrj 	{ "print",	isprint },
24*2c0338ffSzrj 	{ "punct",	ispunct },
25*2c0338ffSzrj 	{ "space",	isspace },
26*2c0338ffSzrj 	{ "upper",	isupper },
27*2c0338ffSzrj 	{ "xdigit",	isxdigit },
28*2c0338ffSzrj 	{ NULL,		NULL }
29*2c0338ffSzrj };
30*2c0338ffSzrj 
31*2c0338ffSzrj #define NCCLASSES	(sizeof(cclasses) / sizeof(cclasses[0]) - 1)
32