diff options
| author | Anton Kling <anton@kling.gg> | 2023-10-22 19:50:38 +0200 | 
|---|---|---|
| committer | Anton Kling <anton@kling.gg> | 2023-10-22 19:50:38 +0200 | 
| commit | 4e09bca9e34c226b6d7e34b4fa11248405fd988e (patch) | |
| tree | 80f156b7940d9d19971395f335530170c69516c7 /userland/libc/string/strtok.c | |
Move everything into a new repo.
Diffstat (limited to 'userland/libc/string/strtok.c')
| -rw-r--r-- | userland/libc/string/strtok.c | 26 | 
1 files changed, 26 insertions, 0 deletions
diff --git a/userland/libc/string/strtok.c b/userland/libc/string/strtok.c new file mode 100644 index 0000000..7b8d0e3 --- /dev/null +++ b/userland/libc/string/strtok.c @@ -0,0 +1,26 @@ +#include <string.h> + +char *strtok_s; + +char *strtok(char *restrict s, const char *restrict sep) { +  if (s) { +    strtok_s = s; +    return strtok(NULL, sep); +  } +	if(!strtok_s) +		return NULL; +  char *e = strpbrk(strtok_s, sep); +  if (!e) { +	  char *r = strtok_s; +	  strtok_s = NULL; +    return r; +  } +  *e = '\0'; +  e--; +  for (; *sep; sep++) +    e++; +  e++; +  char *r = strtok_s; +  strtok_s = e; +  return r; +}  |