diff --git a/include/string.h b/include/string.h index eb3a6215..6d687e14 100644 --- a/include/string.h +++ b/include/string.h @@ -62,6 +62,7 @@ char *strncpy (char *to, char const *from, size_t size); int strncmp (char const*, char const*, size_t); char *strrchr (char const *s, int c); char *strstr (char const *haystack, char const *needle); +char *strtok (char *new_string, char const *delimiters); char * strlwr (char *string); char * strupr (char *string); diff --git a/lib/libc+gnu.c b/lib/libc+gnu.c index fb0ee5e8..210c0dd9 100644 --- a/lib/libc+gnu.c +++ b/lib/libc+gnu.c @@ -137,6 +137,7 @@ #include #include #include +#include #include #include #include diff --git a/lib/string/strtok.c b/lib/string/strtok.c new file mode 100644 index 00000000..0ab05f93 --- /dev/null +++ b/lib/string/strtok.c @@ -0,0 +1,42 @@ +/* -*-comment-start: "//";comment-end:""-*- + * GNU Mes --- Maxwell Equations of Software + * Copyright © 2019 Jan (janneke) Nieuwenhuizen + * + * This file is part of GNU Mes. + * + * GNU Mes is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or (at + * your option) any later version. + * + * GNU Mes is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GNU Mes. If not, see . + */ + +#include + +char * +strtok (char *new_string, char const *delimiters) +{ + static char *mark; + if (new_string) + mark = new_string; + if (!*mark) + return 0; + while (strchr (delimiters, *mark)) + mark++; + char *point = mark; + while (*mark && !strchr (delimiters, *mark)) + mark++; + if (*mark) + { + *mark = 0; + mark++; + } + return point; +}