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