1*c9945492SAndroid Build Coastguard Worker #ifndef _STRING_H 2*c9945492SAndroid Build Coastguard Worker #define _STRING_H 3*c9945492SAndroid Build Coastguard Worker 4*c9945492SAndroid Build Coastguard Worker #ifdef __cplusplus 5*c9945492SAndroid Build Coastguard Worker extern "C" { 6*c9945492SAndroid Build Coastguard Worker #endif 7*c9945492SAndroid Build Coastguard Worker 8*c9945492SAndroid Build Coastguard Worker #include <features.h> 9*c9945492SAndroid Build Coastguard Worker 10*c9945492SAndroid Build Coastguard Worker #if __cplusplus >= 201103L 11*c9945492SAndroid Build Coastguard Worker #define NULL nullptr 12*c9945492SAndroid Build Coastguard Worker #elif defined(__cplusplus) 13*c9945492SAndroid Build Coastguard Worker #define NULL 0L 14*c9945492SAndroid Build Coastguard Worker #else 15*c9945492SAndroid Build Coastguard Worker #define NULL ((void*)0) 16*c9945492SAndroid Build Coastguard Worker #endif 17*c9945492SAndroid Build Coastguard Worker 18*c9945492SAndroid Build Coastguard Worker #define __NEED_size_t 19*c9945492SAndroid Build Coastguard Worker #if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \ 20*c9945492SAndroid Build Coastguard Worker || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) \ 21*c9945492SAndroid Build Coastguard Worker || defined(_BSD_SOURCE) 22*c9945492SAndroid Build Coastguard Worker #define __NEED_locale_t 23*c9945492SAndroid Build Coastguard Worker #endif 24*c9945492SAndroid Build Coastguard Worker 25*c9945492SAndroid Build Coastguard Worker #include <bits/alltypes.h> 26*c9945492SAndroid Build Coastguard Worker 27*c9945492SAndroid Build Coastguard Worker void *memcpy (void *__restrict, const void *__restrict, size_t); 28*c9945492SAndroid Build Coastguard Worker void *memmove (void *, const void *, size_t); 29*c9945492SAndroid Build Coastguard Worker void *memset (void *, int, size_t); 30*c9945492SAndroid Build Coastguard Worker int memcmp (const void *, const void *, size_t); 31*c9945492SAndroid Build Coastguard Worker void *memchr (const void *, int, size_t); 32*c9945492SAndroid Build Coastguard Worker 33*c9945492SAndroid Build Coastguard Worker char *strcpy (char *__restrict, const char *__restrict); 34*c9945492SAndroid Build Coastguard Worker char *strncpy (char *__restrict, const char *__restrict, size_t); 35*c9945492SAndroid Build Coastguard Worker 36*c9945492SAndroid Build Coastguard Worker char *strcat (char *__restrict, const char *__restrict); 37*c9945492SAndroid Build Coastguard Worker char *strncat (char *__restrict, const char *__restrict, size_t); 38*c9945492SAndroid Build Coastguard Worker 39*c9945492SAndroid Build Coastguard Worker int strcmp (const char *, const char *); 40*c9945492SAndroid Build Coastguard Worker int strncmp (const char *, const char *, size_t); 41*c9945492SAndroid Build Coastguard Worker 42*c9945492SAndroid Build Coastguard Worker int strcoll (const char *, const char *); 43*c9945492SAndroid Build Coastguard Worker size_t strxfrm (char *__restrict, const char *__restrict, size_t); 44*c9945492SAndroid Build Coastguard Worker 45*c9945492SAndroid Build Coastguard Worker char *strchr (const char *, int); 46*c9945492SAndroid Build Coastguard Worker char *strrchr (const char *, int); 47*c9945492SAndroid Build Coastguard Worker 48*c9945492SAndroid Build Coastguard Worker size_t strcspn (const char *, const char *); 49*c9945492SAndroid Build Coastguard Worker size_t strspn (const char *, const char *); 50*c9945492SAndroid Build Coastguard Worker char *strpbrk (const char *, const char *); 51*c9945492SAndroid Build Coastguard Worker char *strstr (const char *, const char *); 52*c9945492SAndroid Build Coastguard Worker char *strtok (char *__restrict, const char *__restrict); 53*c9945492SAndroid Build Coastguard Worker 54*c9945492SAndroid Build Coastguard Worker size_t strlen (const char *); 55*c9945492SAndroid Build Coastguard Worker 56*c9945492SAndroid Build Coastguard Worker char *strerror (int); 57*c9945492SAndroid Build Coastguard Worker 58*c9945492SAndroid Build Coastguard Worker #if defined(_BSD_SOURCE) || defined(_GNU_SOURCE) 59*c9945492SAndroid Build Coastguard Worker #include <strings.h> 60*c9945492SAndroid Build Coastguard Worker #endif 61*c9945492SAndroid Build Coastguard Worker 62*c9945492SAndroid Build Coastguard Worker #if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \ 63*c9945492SAndroid Build Coastguard Worker || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) \ 64*c9945492SAndroid Build Coastguard Worker || defined(_BSD_SOURCE) 65*c9945492SAndroid Build Coastguard Worker char *strtok_r (char *__restrict, const char *__restrict, char **__restrict); 66*c9945492SAndroid Build Coastguard Worker int strerror_r (int, char *, size_t); 67*c9945492SAndroid Build Coastguard Worker char *stpcpy(char *__restrict, const char *__restrict); 68*c9945492SAndroid Build Coastguard Worker char *stpncpy(char *__restrict, const char *__restrict, size_t); 69*c9945492SAndroid Build Coastguard Worker size_t strnlen (const char *, size_t); 70*c9945492SAndroid Build Coastguard Worker char *strdup (const char *); 71*c9945492SAndroid Build Coastguard Worker char *strndup (const char *, size_t); 72*c9945492SAndroid Build Coastguard Worker char *strsignal(int); 73*c9945492SAndroid Build Coastguard Worker char *strerror_l (int, locale_t); 74*c9945492SAndroid Build Coastguard Worker int strcoll_l (const char *, const char *, locale_t); 75*c9945492SAndroid Build Coastguard Worker size_t strxfrm_l (char *__restrict, const char *__restrict, size_t, locale_t); 76*c9945492SAndroid Build Coastguard Worker void *memmem(const void *, size_t, const void *, size_t); 77*c9945492SAndroid Build Coastguard Worker #endif 78*c9945492SAndroid Build Coastguard Worker 79*c9945492SAndroid Build Coastguard Worker #if defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) \ 80*c9945492SAndroid Build Coastguard Worker || defined(_BSD_SOURCE) 81*c9945492SAndroid Build Coastguard Worker void *memccpy (void *__restrict, const void *__restrict, int, size_t); 82*c9945492SAndroid Build Coastguard Worker #endif 83*c9945492SAndroid Build Coastguard Worker 84*c9945492SAndroid Build Coastguard Worker #if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) 85*c9945492SAndroid Build Coastguard Worker char *strsep(char **, const char *); 86*c9945492SAndroid Build Coastguard Worker size_t strlcat (char *, const char *, size_t); 87*c9945492SAndroid Build Coastguard Worker size_t strlcpy (char *, const char *, size_t); 88*c9945492SAndroid Build Coastguard Worker void explicit_bzero (void *, size_t); 89*c9945492SAndroid Build Coastguard Worker #endif 90*c9945492SAndroid Build Coastguard Worker 91*c9945492SAndroid Build Coastguard Worker #ifdef _GNU_SOURCE 92*c9945492SAndroid Build Coastguard Worker #define strdupa(x) strcpy(alloca(strlen(x)+1),x) 93*c9945492SAndroid Build Coastguard Worker int strverscmp (const char *, const char *); 94*c9945492SAndroid Build Coastguard Worker char *strchrnul(const char *, int); 95*c9945492SAndroid Build Coastguard Worker char *strcasestr(const char *, const char *); 96*c9945492SAndroid Build Coastguard Worker void *memrchr(const void *, int, size_t); 97*c9945492SAndroid Build Coastguard Worker void *mempcpy(void *, const void *, size_t); 98*c9945492SAndroid Build Coastguard Worker #endif 99*c9945492SAndroid Build Coastguard Worker 100*c9945492SAndroid Build Coastguard Worker #ifdef __cplusplus 101*c9945492SAndroid Build Coastguard Worker } 102*c9945492SAndroid Build Coastguard Worker #endif 103*c9945492SAndroid Build Coastguard Worker 104*c9945492SAndroid Build Coastguard Worker #endif 105