xref: /plan9/sys/src/ape/lib/ap/gen/strspn.c (revision 781103c4074deb8af160e8a0da2742ba6b29dc2b)
13e12c5d1SDavid du Colombier #include <string.h>
23e12c5d1SDavid du Colombier 
33e12c5d1SDavid du Colombier #define	N	256
43e12c5d1SDavid du Colombier 
53e12c5d1SDavid du Colombier size_t
strspn(const char * s,const char * b)63e12c5d1SDavid du Colombier strspn(const char *s, const char *b)
73e12c5d1SDavid du Colombier {
83e12c5d1SDavid du Colombier 	char map[N], *os;
93e12c5d1SDavid du Colombier 
103e12c5d1SDavid du Colombier 	memset(map, 0, N);
113e12c5d1SDavid du Colombier 	while(*b)
123e12c5d1SDavid du Colombier 		map[*(unsigned char *)b++] = 1;
13*781103c4SDavid du Colombier 	os = (char *)s;
143e12c5d1SDavid du Colombier 	while(map[*(unsigned char *)s++])
153e12c5d1SDavid du Colombier 		;
163e12c5d1SDavid du Colombier 	return s - os - 1;
173e12c5d1SDavid du Colombier }
18