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