X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=include%2Fwchar.h;h=369b1e9f25a4225e5c1a02e6e4bc49736a1e1500;hb=8f11e6127fe93093f81a52b15bb1537edc3fc8af;hp=9ceddd57550fc60c386cd3f68c438f4271256fd6;hpb=41d7c77d6a2e74294807d35062e4cd1d48ab72d3;p=musl diff --git a/include/wchar.h b/include/wchar.h index 9ceddd57..369b1e9f 100644 --- a/include/wchar.h +++ b/include/wchar.h @@ -8,33 +8,40 @@ extern "C" { #include #define __NEED_FILE -#define __NEED_va_list +#define __NEED___isoc_va_list #define __NEED_size_t #define __NEED_wchar_t #define __NEED_wint_t +#define __NEED_mbstate_t #if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \ - || defined(_XOPEN_SOURCE) || defined(_GNU_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) +#if defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE) #define __NEED_wctype_t #endif #include -#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 (-1) - -typedef struct -{ - unsigned __opaque1, __opaque2; -} mbstate_t; +#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); @@ -46,7 +53,7 @@ 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 n); +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); @@ -99,17 +106,17 @@ 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, va_list); -int vfwprintf (FILE *__restrict, const wchar_t *__restrict, va_list); -int vswprintf (wchar_t *__restrict, size_t, const wchar_t *__restrict, va_list); +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, va_list); -int vfwscanf (FILE *__restrict, const wchar_t *__restrict, va_list); -int vswscanf (const wchar_t *__restrict, const wchar_t *__restrict, va_list); +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 *); @@ -129,8 +136,23 @@ size_t wcsftime (wchar_t *__restrict, size_t, const wchar_t *__restrict, const s #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(_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); @@ -143,10 +165,10 @@ 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 n, 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) +#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); @@ -165,8 +187,11 @@ 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) ((unsigned)(a)-'0' < 10) +#define iswdigit(a) (0 ? iswdigit(a) : ((unsigned)(a)-'0') < 10) +#endif #endif #ifdef __cplusplus