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