#ifndef _WCHAR_H #define _WCHAR_H #ifdef __cplusplus extern "C" { #endif #include #define __NEED_FILE #define __NEED___isoc_va_list #define __NEED_size_t #define __NEED_wchar_t #define __NEED_wint_t #define __NEED_mbstate_t #define __NEED_off_t #if __STDC_VERSION__ < 201112L #define __NEED_off_t #define __NEED_struct__IO_FILE #endif #if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \ || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE) #define __NEED_locale_t #define __NEED_va_list #endif #if defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE) #define __NEED_wctype_t #endif #include #if L'\0'-1 > 0 #define WCHAR_MAX (0xffffffffu+L'\0') #define WCHAR_MIN (0+L'\0') #else #define WCHAR_MAX (0x7fffffff+L'\0') #define WCHAR_MIN (-1-0x7fffffff+L'\0') #endif #ifdef __cplusplus #define NULL 0L #else #define NULL ((void*)0) #endif #undef WEOF #define WEOF 0xffffffffU wchar_t *wcscpy (wchar_t *__restrict, const wchar_t *__restrict); wchar_t *wcsncpy (wchar_t *__restrict, const wchar_t *__restrict, size_t); wchar_t *wcscat (wchar_t *__restrict, const wchar_t *__restrict); wchar_t *wcsncat (wchar_t *__restrict, const wchar_t *__restrict, size_t); int wcscmp (const wchar_t *, const wchar_t *); int wcsncmp (const wchar_t *, const wchar_t *, size_t); int wcscoll(const wchar_t *, const wchar_t *); size_t wcsxfrm (wchar_t *__restrict, const wchar_t *__restrict, size_t); wchar_t *wcschr (const wchar_t *, wchar_t); wchar_t *wcsrchr (const wchar_t *, wchar_t); size_t wcscspn (const wchar_t *, const wchar_t *); size_t wcsspn (const wchar_t *, const wchar_t *); wchar_t *wcspbrk (const wchar_t *, const wchar_t *); wchar_t *wcstok (wchar_t *__restrict, const wchar_t *__restrict, wchar_t **__restrict); size_t wcslen (const wchar_t *); wchar_t *wcsstr (const wchar_t *__restrict, const wchar_t *__restrict); wchar_t *wcswcs (const wchar_t *, const wchar_t *); wchar_t *wmemchr (const wchar_t *, wchar_t, size_t); int wmemcmp (const wchar_t *, const wchar_t *, size_t); wchar_t *wmemcpy (wchar_t *__restrict, const wchar_t *__restrict, size_t); wchar_t *wmemmove (wchar_t *, const wchar_t *, size_t); wchar_t *wmemset (wchar_t *, wchar_t, size_t); wint_t btowc (int); int wctob (wint_t); int mbsinit (const mbstate_t *); size_t mbrtowc (wchar_t *__restrict, const char *__restrict, size_t, mbstate_t *__restrict); size_t wcrtomb (char *__restrict, wchar_t, mbstate_t *__restrict); size_t mbrlen (const char *__restrict, size_t, mbstate_t *__restrict); size_t mbsrtowcs (wchar_t *__restrict, const char **__restrict, size_t, mbstate_t *__restrict); size_t wcsrtombs (char *__restrict, const wchar_t **__restrict, size_t, mbstate_t *__restrict); float wcstof (const wchar_t *__restrict, wchar_t **__restrict); double wcstod (const wchar_t *__restrict, wchar_t **__restrict); long double wcstold (const wchar_t *__restrict, wchar_t **__restrict); long wcstol (const wchar_t *__restrict, wchar_t **__restrict, int); unsigned long wcstoul (const wchar_t *__restrict, wchar_t **__restrict, int); long long wcstoll (const wchar_t *__restrict, wchar_t **__restrict, int); unsigned long long wcstoull (const wchar_t *__restrict, wchar_t **__restrict, int); int fwide (FILE *, int); int wprintf (const wchar_t *__restrict, ...); int fwprintf (FILE *__restrict, const wchar_t *__restrict, ...); int swprintf (wchar_t *__restrict, size_t, const wchar_t *__restrict, ...); int vwprintf (const wchar_t *__restrict, __isoc_va_list); int vfwprintf (FILE *__restrict, const wchar_t *__restrict, __isoc_va_list); int vswprintf (wchar_t *__restrict, size_t, const wchar_t *__restrict, __isoc_va_list); int wscanf (const wchar_t *__restrict, ...); int fwscanf (FILE *__restrict, const wchar_t *__restrict, ...); int swscanf (const wchar_t *__restrict, const wchar_t *__restrict, ...); int vwscanf (const wchar_t *__restrict, __isoc_va_list); int vfwscanf (FILE *__restrict, const wchar_t *__restrict, __isoc_va_list); int vswscanf (const wchar_t *__restrict, const wchar_t *__restrict, __isoc_va_list); wint_t fgetwc (FILE *); wint_t getwc (FILE *); wint_t getwchar (void); wint_t fputwc (wchar_t, FILE *); wint_t putwc (wchar_t, FILE *); wint_t putwchar (wchar_t); wchar_t *fgetws (wchar_t *__restrict, int, FILE *__restrict); int fputws (const wchar_t *__restrict, FILE *__restrict); wint_t ungetwc (wint_t, FILE *); struct tm; size_t wcsftime (wchar_t *__restrict, size_t, const wchar_t *__restrict, const struct tm *__restrict); #undef iswdigit #if defined(_GNU_SOURCE) wint_t fgetwc_unlocked (FILE *); wint_t getwc_unlocked (FILE *); wint_t getwchar_unlocked (void); wint_t fputwc_unlocked (wchar_t, FILE *); wint_t putwc_unlocked (wchar_t, FILE *); wint_t putwchar_unlocked (wchar_t); wchar_t *fgetws_unlocked (wchar_t *__restrict, int, FILE *__restrict); int fputws_unlocked (const wchar_t *__restrict, FILE *__restrict); #endif #if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) size_t wcsftime_l (wchar_t *__restrict, size_t, const wchar_t *__restrict, const struct tm *__restrict, locale_t); #endif #if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \ || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE) FILE *open_wmemstream(wchar_t **, size_t *); size_t mbsnrtowcs(wchar_t *__restrict, const char **__restrict, size_t, size_t, mbstate_t *__restrict); size_t wcsnrtombs(char *__restrict, const wchar_t **__restrict, size_t, size_t, mbstate_t *__restrict); wchar_t *wcsdup(const wchar_t *); size_t wcsnlen (const wchar_t *, size_t); wchar_t *wcpcpy (wchar_t *__restrict, const wchar_t *__restrict); wchar_t *wcpncpy (wchar_t *__restrict, const wchar_t *__restrict, size_t); int wcscasecmp(const wchar_t *, const wchar_t *); int wcscasecmp_l(const wchar_t *, const wchar_t *, locale_t); int wcsncasecmp(const wchar_t *, const wchar_t *, size_t); int wcsncasecmp_l(const wchar_t *, const wchar_t *, size_t, locale_t); int wcscoll_l(const wchar_t *, const wchar_t *, locale_t); size_t wcsxfrm_l(wchar_t *__restrict, const wchar_t *__restrict, size_t, locale_t); #endif #if defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE) int wcwidth (wchar_t); int wcswidth (const wchar_t *, size_t); int iswalnum(wint_t); int iswalpha(wint_t); int iswblank(wint_t); int iswcntrl(wint_t); int iswdigit(wint_t); int iswgraph(wint_t); int iswlower(wint_t); int iswprint(wint_t); int iswpunct(wint_t); int iswspace(wint_t); int iswupper(wint_t); int iswxdigit(wint_t); int iswctype(wint_t, wctype_t); wint_t towlower(wint_t); wint_t towupper(wint_t); wctype_t wctype(const char *); #ifndef __cplusplus #undef iswdigit #define iswdigit(a) (0 ? iswdigit(a) : ((unsigned)(a)-'0') < 10) #endif #endif #ifdef __cplusplus } #endif #endif