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