1*cda5da8dSAndroid Build Coastguard Worker #ifndef _WCHAR_H 2*cda5da8dSAndroid Build Coastguard Worker #define _WCHAR_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 #define __NEED_FILE 11*cda5da8dSAndroid Build Coastguard Worker #define __NEED___isoc_va_list 12*cda5da8dSAndroid Build Coastguard Worker #define __NEED_size_t 13*cda5da8dSAndroid Build Coastguard Worker #define __NEED_wchar_t 14*cda5da8dSAndroid Build Coastguard Worker #define __NEED_wint_t 15*cda5da8dSAndroid Build Coastguard Worker #define __NEED_mbstate_t 16*cda5da8dSAndroid Build Coastguard Worker 17*cda5da8dSAndroid Build Coastguard Worker #if __STDC_VERSION__ < 201112L 18*cda5da8dSAndroid Build Coastguard Worker #define __NEED_struct__IO_FILE 19*cda5da8dSAndroid Build Coastguard Worker #endif 20*cda5da8dSAndroid Build Coastguard Worker 21*cda5da8dSAndroid Build Coastguard Worker #if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \ 22*cda5da8dSAndroid Build Coastguard Worker || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE) 23*cda5da8dSAndroid Build Coastguard Worker #define __NEED_locale_t 24*cda5da8dSAndroid Build Coastguard Worker #define __NEED_va_list 25*cda5da8dSAndroid Build Coastguard Worker #endif 26*cda5da8dSAndroid Build Coastguard Worker 27*cda5da8dSAndroid Build Coastguard Worker #if defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE) 28*cda5da8dSAndroid Build Coastguard Worker #define __NEED_wctype_t 29*cda5da8dSAndroid Build Coastguard Worker #endif 30*cda5da8dSAndroid Build Coastguard Worker 31*cda5da8dSAndroid Build Coastguard Worker #include <bits/alltypes.h> 32*cda5da8dSAndroid Build Coastguard Worker 33*cda5da8dSAndroid Build Coastguard Worker #if L'\0'-1 > 0 34*cda5da8dSAndroid Build Coastguard Worker #define WCHAR_MAX (0xffffffffu+L'\0') 35*cda5da8dSAndroid Build Coastguard Worker #define WCHAR_MIN (0+L'\0') 36*cda5da8dSAndroid Build Coastguard Worker #else 37*cda5da8dSAndroid Build Coastguard Worker #define WCHAR_MAX (0x7fffffff+L'\0') 38*cda5da8dSAndroid Build Coastguard Worker #define WCHAR_MIN (-1-0x7fffffff+L'\0') 39*cda5da8dSAndroid Build Coastguard Worker #endif 40*cda5da8dSAndroid Build Coastguard Worker 41*cda5da8dSAndroid Build Coastguard Worker #if __cplusplus >= 201103L 42*cda5da8dSAndroid Build Coastguard Worker #define NULL nullptr 43*cda5da8dSAndroid Build Coastguard Worker #elif defined(__cplusplus) 44*cda5da8dSAndroid Build Coastguard Worker #define NULL 0L 45*cda5da8dSAndroid Build Coastguard Worker #else 46*cda5da8dSAndroid Build Coastguard Worker #define NULL ((void*)0) 47*cda5da8dSAndroid Build Coastguard Worker #endif 48*cda5da8dSAndroid Build Coastguard Worker 49*cda5da8dSAndroid Build Coastguard Worker #undef WEOF 50*cda5da8dSAndroid Build Coastguard Worker #define WEOF 0xffffffffU 51*cda5da8dSAndroid Build Coastguard Worker 52*cda5da8dSAndroid Build Coastguard Worker wchar_t *wcscpy (wchar_t *__restrict, const wchar_t *__restrict); 53*cda5da8dSAndroid Build Coastguard Worker wchar_t *wcsncpy (wchar_t *__restrict, const wchar_t *__restrict, size_t); 54*cda5da8dSAndroid Build Coastguard Worker 55*cda5da8dSAndroid Build Coastguard Worker wchar_t *wcscat (wchar_t *__restrict, const wchar_t *__restrict); 56*cda5da8dSAndroid Build Coastguard Worker wchar_t *wcsncat (wchar_t *__restrict, const wchar_t *__restrict, size_t); 57*cda5da8dSAndroid Build Coastguard Worker 58*cda5da8dSAndroid Build Coastguard Worker int wcscmp (const wchar_t *, const wchar_t *); 59*cda5da8dSAndroid Build Coastguard Worker int wcsncmp (const wchar_t *, const wchar_t *, size_t); 60*cda5da8dSAndroid Build Coastguard Worker 61*cda5da8dSAndroid Build Coastguard Worker int wcscoll(const wchar_t *, const wchar_t *); 62*cda5da8dSAndroid Build Coastguard Worker size_t wcsxfrm (wchar_t *__restrict, const wchar_t *__restrict, size_t); 63*cda5da8dSAndroid Build Coastguard Worker 64*cda5da8dSAndroid Build Coastguard Worker wchar_t *wcschr (const wchar_t *, wchar_t); 65*cda5da8dSAndroid Build Coastguard Worker wchar_t *wcsrchr (const wchar_t *, wchar_t); 66*cda5da8dSAndroid Build Coastguard Worker 67*cda5da8dSAndroid Build Coastguard Worker size_t wcscspn (const wchar_t *, const wchar_t *); 68*cda5da8dSAndroid Build Coastguard Worker size_t wcsspn (const wchar_t *, const wchar_t *); 69*cda5da8dSAndroid Build Coastguard Worker wchar_t *wcspbrk (const wchar_t *, const wchar_t *); 70*cda5da8dSAndroid Build Coastguard Worker 71*cda5da8dSAndroid Build Coastguard Worker wchar_t *wcstok (wchar_t *__restrict, const wchar_t *__restrict, wchar_t **__restrict); 72*cda5da8dSAndroid Build Coastguard Worker 73*cda5da8dSAndroid Build Coastguard Worker size_t wcslen (const wchar_t *); 74*cda5da8dSAndroid Build Coastguard Worker 75*cda5da8dSAndroid Build Coastguard Worker wchar_t *wcsstr (const wchar_t *__restrict, const wchar_t *__restrict); 76*cda5da8dSAndroid Build Coastguard Worker wchar_t *wcswcs (const wchar_t *, const wchar_t *); 77*cda5da8dSAndroid Build Coastguard Worker 78*cda5da8dSAndroid Build Coastguard Worker wchar_t *wmemchr (const wchar_t *, wchar_t, size_t); 79*cda5da8dSAndroid Build Coastguard Worker int wmemcmp (const wchar_t *, const wchar_t *, size_t); 80*cda5da8dSAndroid Build Coastguard Worker wchar_t *wmemcpy (wchar_t *__restrict, const wchar_t *__restrict, size_t); 81*cda5da8dSAndroid Build Coastguard Worker wchar_t *wmemmove (wchar_t *, const wchar_t *, size_t); 82*cda5da8dSAndroid Build Coastguard Worker wchar_t *wmemset (wchar_t *, wchar_t, size_t); 83*cda5da8dSAndroid Build Coastguard Worker 84*cda5da8dSAndroid Build Coastguard Worker wint_t btowc (int); 85*cda5da8dSAndroid Build Coastguard Worker int wctob (wint_t); 86*cda5da8dSAndroid Build Coastguard Worker 87*cda5da8dSAndroid Build Coastguard Worker int mbsinit (const mbstate_t *); 88*cda5da8dSAndroid Build Coastguard Worker size_t mbrtowc (wchar_t *__restrict, const char *__restrict, size_t, mbstate_t *__restrict); 89*cda5da8dSAndroid Build Coastguard Worker size_t wcrtomb (char *__restrict, wchar_t, mbstate_t *__restrict); 90*cda5da8dSAndroid Build Coastguard Worker 91*cda5da8dSAndroid Build Coastguard Worker size_t mbrlen (const char *__restrict, size_t, mbstate_t *__restrict); 92*cda5da8dSAndroid Build Coastguard Worker 93*cda5da8dSAndroid Build Coastguard Worker size_t mbsrtowcs (wchar_t *__restrict, const char **__restrict, size_t, mbstate_t *__restrict); 94*cda5da8dSAndroid Build Coastguard Worker size_t wcsrtombs (char *__restrict, const wchar_t **__restrict, size_t, mbstate_t *__restrict); 95*cda5da8dSAndroid Build Coastguard Worker 96*cda5da8dSAndroid Build Coastguard Worker float wcstof (const wchar_t *__restrict, wchar_t **__restrict); 97*cda5da8dSAndroid Build Coastguard Worker double wcstod (const wchar_t *__restrict, wchar_t **__restrict); 98*cda5da8dSAndroid Build Coastguard Worker long double wcstold (const wchar_t *__restrict, wchar_t **__restrict); 99*cda5da8dSAndroid Build Coastguard Worker 100*cda5da8dSAndroid Build Coastguard Worker long wcstol (const wchar_t *__restrict, wchar_t **__restrict, int); 101*cda5da8dSAndroid Build Coastguard Worker unsigned long wcstoul (const wchar_t *__restrict, wchar_t **__restrict, int); 102*cda5da8dSAndroid Build Coastguard Worker 103*cda5da8dSAndroid Build Coastguard Worker long long wcstoll (const wchar_t *__restrict, wchar_t **__restrict, int); 104*cda5da8dSAndroid Build Coastguard Worker unsigned long long wcstoull (const wchar_t *__restrict, wchar_t **__restrict, int); 105*cda5da8dSAndroid Build Coastguard Worker 106*cda5da8dSAndroid Build Coastguard Worker 107*cda5da8dSAndroid Build Coastguard Worker 108*cda5da8dSAndroid Build Coastguard Worker int fwide (FILE *, int); 109*cda5da8dSAndroid Build Coastguard Worker 110*cda5da8dSAndroid Build Coastguard Worker 111*cda5da8dSAndroid Build Coastguard Worker int wprintf (const wchar_t *__restrict, ...); 112*cda5da8dSAndroid Build Coastguard Worker int fwprintf (FILE *__restrict, const wchar_t *__restrict, ...); 113*cda5da8dSAndroid Build Coastguard Worker int swprintf (wchar_t *__restrict, size_t, const wchar_t *__restrict, ...); 114*cda5da8dSAndroid Build Coastguard Worker 115*cda5da8dSAndroid Build Coastguard Worker int vwprintf (const wchar_t *__restrict, __isoc_va_list); 116*cda5da8dSAndroid Build Coastguard Worker int vfwprintf (FILE *__restrict, const wchar_t *__restrict, __isoc_va_list); 117*cda5da8dSAndroid Build Coastguard Worker int vswprintf (wchar_t *__restrict, size_t, const wchar_t *__restrict, __isoc_va_list); 118*cda5da8dSAndroid Build Coastguard Worker 119*cda5da8dSAndroid Build Coastguard Worker int wscanf (const wchar_t *__restrict, ...); 120*cda5da8dSAndroid Build Coastguard Worker int fwscanf (FILE *__restrict, const wchar_t *__restrict, ...); 121*cda5da8dSAndroid Build Coastguard Worker int swscanf (const wchar_t *__restrict, const wchar_t *__restrict, ...); 122*cda5da8dSAndroid Build Coastguard Worker 123*cda5da8dSAndroid Build Coastguard Worker int vwscanf (const wchar_t *__restrict, __isoc_va_list); 124*cda5da8dSAndroid Build Coastguard Worker int vfwscanf (FILE *__restrict, const wchar_t *__restrict, __isoc_va_list); 125*cda5da8dSAndroid Build Coastguard Worker int vswscanf (const wchar_t *__restrict, const wchar_t *__restrict, __isoc_va_list); 126*cda5da8dSAndroid Build Coastguard Worker 127*cda5da8dSAndroid Build Coastguard Worker wint_t fgetwc (FILE *); 128*cda5da8dSAndroid Build Coastguard Worker wint_t getwc (FILE *); 129*cda5da8dSAndroid Build Coastguard Worker wint_t getwchar (void); 130*cda5da8dSAndroid Build Coastguard Worker 131*cda5da8dSAndroid Build Coastguard Worker wint_t fputwc (wchar_t, FILE *); 132*cda5da8dSAndroid Build Coastguard Worker wint_t putwc (wchar_t, FILE *); 133*cda5da8dSAndroid Build Coastguard Worker wint_t putwchar (wchar_t); 134*cda5da8dSAndroid Build Coastguard Worker 135*cda5da8dSAndroid Build Coastguard Worker wchar_t *fgetws (wchar_t *__restrict, int, FILE *__restrict); 136*cda5da8dSAndroid Build Coastguard Worker int fputws (const wchar_t *__restrict, FILE *__restrict); 137*cda5da8dSAndroid Build Coastguard Worker 138*cda5da8dSAndroid Build Coastguard Worker wint_t ungetwc (wint_t, FILE *); 139*cda5da8dSAndroid Build Coastguard Worker 140*cda5da8dSAndroid Build Coastguard Worker struct tm; 141*cda5da8dSAndroid Build Coastguard Worker size_t wcsftime (wchar_t *__restrict, size_t, const wchar_t *__restrict, const struct tm *__restrict); 142*cda5da8dSAndroid Build Coastguard Worker 143*cda5da8dSAndroid Build Coastguard Worker #undef iswdigit 144*cda5da8dSAndroid Build Coastguard Worker 145*cda5da8dSAndroid Build Coastguard Worker #if defined(_GNU_SOURCE) 146*cda5da8dSAndroid Build Coastguard Worker wint_t fgetwc_unlocked (FILE *); 147*cda5da8dSAndroid Build Coastguard Worker wint_t getwc_unlocked (FILE *); 148*cda5da8dSAndroid Build Coastguard Worker wint_t getwchar_unlocked (void); 149*cda5da8dSAndroid Build Coastguard Worker wint_t fputwc_unlocked (wchar_t, FILE *); 150*cda5da8dSAndroid Build Coastguard Worker wint_t putwc_unlocked (wchar_t, FILE *); 151*cda5da8dSAndroid Build Coastguard Worker wint_t putwchar_unlocked (wchar_t); 152*cda5da8dSAndroid Build Coastguard Worker wchar_t *fgetws_unlocked (wchar_t *__restrict, int, FILE *__restrict); 153*cda5da8dSAndroid Build Coastguard Worker int fputws_unlocked (const wchar_t *__restrict, FILE *__restrict); 154*cda5da8dSAndroid Build Coastguard Worker #endif 155*cda5da8dSAndroid Build Coastguard Worker 156*cda5da8dSAndroid Build Coastguard Worker #if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) 157*cda5da8dSAndroid Build Coastguard Worker size_t wcsftime_l (wchar_t *__restrict, size_t, const wchar_t *__restrict, const struct tm *__restrict, locale_t); 158*cda5da8dSAndroid Build Coastguard Worker #endif 159*cda5da8dSAndroid Build Coastguard Worker 160*cda5da8dSAndroid Build Coastguard Worker #if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \ 161*cda5da8dSAndroid Build Coastguard Worker || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE) 162*cda5da8dSAndroid Build Coastguard Worker FILE *open_wmemstream(wchar_t **, size_t *); 163*cda5da8dSAndroid Build Coastguard Worker size_t mbsnrtowcs(wchar_t *__restrict, const char **__restrict, size_t, size_t, mbstate_t *__restrict); 164*cda5da8dSAndroid Build Coastguard Worker size_t wcsnrtombs(char *__restrict, const wchar_t **__restrict, size_t, size_t, mbstate_t *__restrict); 165*cda5da8dSAndroid Build Coastguard Worker wchar_t *wcsdup(const wchar_t *); 166*cda5da8dSAndroid Build Coastguard Worker size_t wcsnlen (const wchar_t *, size_t); 167*cda5da8dSAndroid Build Coastguard Worker wchar_t *wcpcpy (wchar_t *__restrict, const wchar_t *__restrict); 168*cda5da8dSAndroid Build Coastguard Worker wchar_t *wcpncpy (wchar_t *__restrict, const wchar_t *__restrict, size_t); 169*cda5da8dSAndroid Build Coastguard Worker int wcscasecmp(const wchar_t *, const wchar_t *); 170*cda5da8dSAndroid Build Coastguard Worker int wcscasecmp_l(const wchar_t *, const wchar_t *, locale_t); 171*cda5da8dSAndroid Build Coastguard Worker int wcsncasecmp(const wchar_t *, const wchar_t *, size_t); 172*cda5da8dSAndroid Build Coastguard Worker int wcsncasecmp_l(const wchar_t *, const wchar_t *, size_t, locale_t); 173*cda5da8dSAndroid Build Coastguard Worker int wcscoll_l(const wchar_t *, const wchar_t *, locale_t); 174*cda5da8dSAndroid Build Coastguard Worker size_t wcsxfrm_l(wchar_t *__restrict, const wchar_t *__restrict, size_t, locale_t); 175*cda5da8dSAndroid Build Coastguard Worker #endif 176*cda5da8dSAndroid Build Coastguard Worker 177*cda5da8dSAndroid Build Coastguard Worker #if defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE) 178*cda5da8dSAndroid Build Coastguard Worker int wcwidth (wchar_t); 179*cda5da8dSAndroid Build Coastguard Worker int wcswidth (const wchar_t *, size_t); 180*cda5da8dSAndroid Build Coastguard Worker int iswalnum(wint_t); 181*cda5da8dSAndroid Build Coastguard Worker int iswalpha(wint_t); 182*cda5da8dSAndroid Build Coastguard Worker int iswblank(wint_t); 183*cda5da8dSAndroid Build Coastguard Worker int iswcntrl(wint_t); 184*cda5da8dSAndroid Build Coastguard Worker int iswdigit(wint_t); 185*cda5da8dSAndroid Build Coastguard Worker int iswgraph(wint_t); 186*cda5da8dSAndroid Build Coastguard Worker int iswlower(wint_t); 187*cda5da8dSAndroid Build Coastguard Worker int iswprint(wint_t); 188*cda5da8dSAndroid Build Coastguard Worker int iswpunct(wint_t); 189*cda5da8dSAndroid Build Coastguard Worker int iswspace(wint_t); 190*cda5da8dSAndroid Build Coastguard Worker int iswupper(wint_t); 191*cda5da8dSAndroid Build Coastguard Worker int iswxdigit(wint_t); 192*cda5da8dSAndroid Build Coastguard Worker int iswctype(wint_t, wctype_t); 193*cda5da8dSAndroid Build Coastguard Worker wint_t towlower(wint_t); 194*cda5da8dSAndroid Build Coastguard Worker wint_t towupper(wint_t); 195*cda5da8dSAndroid Build Coastguard Worker wctype_t wctype(const char *); 196*cda5da8dSAndroid Build Coastguard Worker 197*cda5da8dSAndroid Build Coastguard Worker #ifndef __cplusplus 198*cda5da8dSAndroid Build Coastguard Worker #undef iswdigit 199*cda5da8dSAndroid Build Coastguard Worker #define iswdigit(a) (0 ? iswdigit(a) : ((unsigned)(a)-'0') < 10) 200*cda5da8dSAndroid Build Coastguard Worker #endif 201*cda5da8dSAndroid Build Coastguard Worker #endif 202*cda5da8dSAndroid Build Coastguard Worker 203*cda5da8dSAndroid Build Coastguard Worker #ifdef __cplusplus 204*cda5da8dSAndroid Build Coastguard Worker } 205*cda5da8dSAndroid Build Coastguard Worker #endif 206*cda5da8dSAndroid Build Coastguard Worker 207*cda5da8dSAndroid Build Coastguard Worker #endif 208