1*3e12c5d1SDavid du Colombier #include <u.h> 2*3e12c5d1SDavid du Colombier #include <libc.h> 3*3e12c5d1SDavid du Colombier 4*3e12c5d1SDavid du Colombier #define N 256 5*3e12c5d1SDavid du Colombier 6*3e12c5d1SDavid du Colombier char* strtok(char * s,char * b)7*3e12c5d1SDavid du Colombierstrtok(char *s, char *b) 8*3e12c5d1SDavid du Colombier { 9*3e12c5d1SDavid du Colombier static char *under_rock; 10*3e12c5d1SDavid du Colombier char map[N], *os; 11*3e12c5d1SDavid du Colombier 12*3e12c5d1SDavid du Colombier memset(map, 0, N); 13*3e12c5d1SDavid du Colombier while(*b) 14*3e12c5d1SDavid du Colombier map[*(uchar*)b++] = 1; 15*3e12c5d1SDavid du Colombier if(s == 0) 16*3e12c5d1SDavid du Colombier s = under_rock; 17*3e12c5d1SDavid du Colombier while(map[*(uchar*)s++]) 18*3e12c5d1SDavid du Colombier ; 19*3e12c5d1SDavid du Colombier if(*--s == 0) 20*3e12c5d1SDavid du Colombier return 0; 21*3e12c5d1SDavid du Colombier os = s; 22*3e12c5d1SDavid du Colombier while(map[*(uchar*)s] == 0) 23*3e12c5d1SDavid du Colombier if(*s++ == 0) { 24*3e12c5d1SDavid du Colombier under_rock = s-1; 25*3e12c5d1SDavid du Colombier return os; 26*3e12c5d1SDavid du Colombier } 27*3e12c5d1SDavid du Colombier *s++ = 0; 28*3e12c5d1SDavid du Colombier under_rock = s; 29*3e12c5d1SDavid du Colombier return os; 30*3e12c5d1SDavid du Colombier } 31