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