13e12c5d1SDavid du Colombier #include <string.h> 23e12c5d1SDavid du Colombier 33e12c5d1SDavid du Colombier #define N 256 43e12c5d1SDavid du Colombier 53e12c5d1SDavid du Colombier size_t strcspn(const char * s,const char * b)63e12c5d1SDavid du Colombierstrcspn(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 for(;;) { 123e12c5d1SDavid du Colombier map[*(unsigned char*)b] = 1; 133e12c5d1SDavid du Colombier if(*b++ == 0) 143e12c5d1SDavid du Colombier break; 153e12c5d1SDavid du Colombier } 16*781103c4SDavid du Colombier os = (char *)s; 173e12c5d1SDavid du Colombier while(map[*(unsigned char*)s++] == 0) 183e12c5d1SDavid du Colombier ; 193e12c5d1SDavid du Colombier return s - os - 1; 203e12c5d1SDavid du Colombier } 21