plan9port

fork of plan9port with libvec, libstr and libsdb
Log | Files | Refs | README | LICENSE

Strtok.c (345B)


      1 #include "std.h"
      2 
      3 void
      4 Strtok(String *p, char *str, char *sep, char **last)
      5 {
      6 	char *q;
      7 
      8 	if (str != NULL)
      9 		*last = str;
     10 	if (*last == NULL)
     11 		sysfatal("libstr: wrong Strtok() usage.");
     12 	q = strpbrk(*last, sep);
     13 	if (q == NULL)
     14 		q = *last + strlen(*last);
     15 	Strzero(p);
     16 	Stradds(p, Strn(*last, q - *last));
     17 	*last = (*q == '\0') ? q : q + 1;
     18 }