X-Git-Url: http://nsz.repo.hu/git/?p=musl;a=blobdiff_plain;f=include%2Fstring.h;h=33f013782a4a5fcdf7ec81c6463461352e01e7b4;hp=f95a15c9b72340d0269374227b5ee65b6a93b413;hb=c86f2974e2acd330be2d587173dd4dd56db82e22;hpb=b5b41212a686849fe061b8c4bb80d38f893d00c7 diff --git a/include/string.h b/include/string.h index f95a15c9..33f01378 100644 --- a/include/string.h +++ b/include/string.h @@ -5,6 +5,8 @@ extern "C" { #endif +#include + #undef NULL #ifdef __cplusplus #define NULL 0 @@ -13,25 +15,31 @@ extern "C" { #endif #define __NEED_size_t +#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \ + || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) \ + || defined(_BSD_SOURCE) +#define __NEED_locale_t +#endif + #include -void *memcpy (void *, const void *, size_t); +void *memcpy (void *__restrict, const void *__restrict, size_t); void *memmove (void *, const void *, size_t); void *memset (void *, int, size_t); int memcmp (const void *, const void *, size_t); void *memchr (const void *, int, size_t); -char *strcpy (char *, const char *); -char *strncpy (char *, const char *, size_t); +char *strcpy (char *__restrict, const char *__restrict); +char *strncpy (char *__restrict, const char *__restrict, size_t); -char *strcat (char *, const char *); -char *strncat (char *, const char *, size_t); +char *strcat (char *__restrict, const char *__restrict); +char *strncat (char *__restrict, const char *__restrict, size_t); int strcmp (const char *, const char *); int strncmp (const char *, const char *, size_t); int strcoll (const char *, const char *); -size_t strxfrm (char *, const char *, size_t); +size_t strxfrm (char *__restrict, const char *__restrict, size_t); char *strchr (const char *, int); char *strrchr (const char *, int); @@ -40,27 +48,39 @@ size_t strcspn (const char *, const char *); size_t strspn (const char *, const char *); char *strpbrk (const char *, const char *); char *strstr (const char *, const char *); -char *strtok (char *, const char *); +char *strtok (char *__restrict, const char *__restrict); size_t strlen (const char *); char *strerror (int); +#if defined(_BSD_SOURCE) || defined(_GNU_SOURCE) +#include +#endif #if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \ - || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) -char *strtok_r (char *, const char *, char **); + || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) \ + || defined(_BSD_SOURCE) +char *strtok_r (char *__restrict, const char *__restrict, char **__restrict); int strerror_r (int, char *, size_t); -char *stpcpy(char *, const char *); -char *stpncpy(char *, const char *, size_t); +char *stpcpy(char *__restrict, const char *__restrict); +char *stpncpy(char *__restrict, const char *__restrict, size_t); size_t strnlen (const char *, size_t); char *strdup (const char *); char *strndup (const char *, size_t); char *strsignal(int); +char *strerror_l (int, locale_t); +int strcoll_l (const char *, const char *, locale_t); +size_t strxfrm_l (char *__restrict, const char *__restrict, size_t, locale_t); #endif -#if defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) -void *memccpy (void *, const void *, int, size_t); +#if defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) \ + || defined(_BSD_SOURCE) +void *memccpy (void *__restrict, const void *__restrict, int, size_t); +#endif + +#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) +char *strsep(char **, const char *); #endif #ifdef _BSD_SOURCE @@ -69,13 +89,18 @@ size_t strlcpy (char *, const char *, size_t); #endif #ifdef _GNU_SOURCE -int strcasecmp (const char *, const char *); -int strncasecmp (const char *, const char *, size_t); +#define strdupa(x) strcpy(alloca(strlen(x)+1),x) +int strverscmp (const char *, const char *); +int strcasecmp_l (const char *, const char *, locale_t); +int strncasecmp_l (const char *, const char *, size_t, locale_t); char *strchrnul(const char *, int); char *strcasestr(const char *, const char *); -char *strsep(char **, const char *); +void *memmem(const void *, size_t, const void *, size_t); void *memrchr(const void *, int, size_t); void *mempcpy(void *, const void *, size_t); +#ifndef __cplusplus +char *basename(); +#endif #endif #ifdef __cplusplus