xref: /plan9/sys/src/libc/port/strspn.c (revision 7dd7cddf99dd7472612f1413b4da293630e6b1bc)
13e12c5d1SDavid du Colombier #include <u.h>
23e12c5d1SDavid du Colombier #include <libc.h>
33e12c5d1SDavid du Colombier 
43e12c5d1SDavid du Colombier #define	N	256
53e12c5d1SDavid du Colombier 
6*7dd7cddfSDavid du Colombier long
strspn(char * s,char * b)73e12c5d1SDavid du Colombier strspn(char *s, char *b)
83e12c5d1SDavid du Colombier {
93e12c5d1SDavid du Colombier 	char map[N], *os;
103e12c5d1SDavid du Colombier 
113e12c5d1SDavid du Colombier 	memset(map, 0, N);
123e12c5d1SDavid du Colombier 	while(*b)
133e12c5d1SDavid du Colombier 		map[*(uchar *)b++] = 1;
143e12c5d1SDavid du Colombier 	os = s;
153e12c5d1SDavid du Colombier 	while(map[*(uchar *)s++])
163e12c5d1SDavid du Colombier 		;
173e12c5d1SDavid du Colombier 	return s - os - 1;
183e12c5d1SDavid du Colombier }
19