|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Minios-devel] [UNIKRAFT PATCH] lib/nolibc: Introduce strtok_r
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.
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.c
> index 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 |