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