[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Minios-devel] [UNIKRAFT PATCH] lib/nolibc: Introduce strtok_r
Hello Costin, On 10/7/19 9:43 PM, Costin Lupu wrote: Hi Sharan, All code imported from musl should go to musl-imported/ subdirectory of lib/nolibc. This way we can differentiate what's of musl origin from the other stuff. In this case I added it to string.c as the other related function strtok and strspn which was also imported from musl is in the same file. Thanks & Regards Sharan Cheers, Costin On 10/7/19 12:56 PM, Sharan Santhanam wrote:The code taken from musl. File: src/string/strtok_r.c Commit Id: 400c5e5c8307 Signed-off-by: Sharan Santhanam <sharan.santhanam@xxxxxxxxx> --- lib/nolibc/exportsyms.uk | 1 + lib/nolibc/include/string.h | 1 + lib/nolibc/string.c | 15 +++++++++++++++ 3 files changed, 17 insertions(+) diff --git a/lib/nolibc/exportsyms.uk b/lib/nolibc/exportsyms.uk index c542f3a..cf083ef 100644 --- a/lib/nolibc/exportsyms.uk +++ b/lib/nolibc/exportsyms.uk @@ -65,6 +65,7 @@ strcmp strcspn strspn strtok +strtok_r strndup strdup strlcpy diff --git a/lib/nolibc/include/string.h b/lib/nolibc/include/string.h index c5f0caa..9a1a63c 100644 --- a/lib/nolibc/include/string.h +++ b/lib/nolibc/include/string.h @@ -65,6 +65,7 @@ int strcmp(const char *str1, const char *str2); size_t strcspn(const char *s, const char *c); size_t strspn(const char *s, const char *c); char *strtok(char *restrict s, const char *restrict sep); +char *strtok_r(char *restrict s, const char *restrict sep, char **restrict p); char *strndup(const char *str, size_t len); char *strdup(const char *str);diff --git a/lib/nolibc/string.c b/lib/nolibc/string.cindex d4d1db2..327efcc 100644 --- a/lib/nolibc/string.c +++ b/lib/nolibc/string.c @@ -285,6 +285,21 @@ char *strtok(char *restrict s, const char *restrict sep) return s; }+char *strtok_r(char *restrict s, const char *restrict sep, char **restrict p)+{ + if (!s && !(s = *p)) + return NULL; + s += strspn(s, sep); + if (!*s) + return *p = 0; + *p = s + strcspn(s, sep); + if (**p) + *(*p)++ = 0; + else + *p = 0; + return s; +} + char *strndup(const char *str, size_t len) { char *__res; _______________________________________________ Minios-devel mailing list Minios-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/minios-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |