2022-06-02 06:28:17 +00:00
|
|
|
// On linux this will be UTF-32, on windows it's UTF-16
|
|
|
|
#include "_platform.h"
|
|
|
|
|
|
|
|
typedef struct mbstate_t mbstate_t;
|
|
|
|
typedef wchar_t wint_t;
|
|
|
|
|
|
|
|
#define WCHAR_MIN 0x0000
|
|
|
|
#define WCHAR_MAX 0xffff
|
|
|
|
|
|
|
|
#ifndef WEOF
|
2022-06-06 00:16:44 +00:00
|
|
|
#define WEOF 0
|
2022-06-02 06:28:17 +00:00
|
|
|
#endif
|
|
|
|
|
|
|
|
int fwprintf(FILE * restrict stream, const wchar_t * restrict format, ...);
|
|
|
|
int fwscanf(FILE * restrict stream, const wchar_t * restrict format, ...);
|
|
|
|
int swprintf(wchar_t * restrict s, size_t n, const wchar_t * restrict format, ...);
|
|
|
|
int swscanf(const wchar_t * restrict s, const wchar_t * restrict format, ...);
|
|
|
|
int vfwprintf(FILE * restrict stream, const wchar_t * restrict format, va_list arg);
|
|
|
|
int vfwscanf(FILE * restrict stream, const wchar_t * restrict format, va_list arg);
|
|
|
|
int vswprintf(wchar_t * restrict s, size_t n, const wchar_t * restrict format, va_list arg);
|
|
|
|
int vswscanf(const wchar_t * restrict s, const wchar_t * restrict format, va_list arg);
|
|
|
|
int vwprintf(const wchar_t * restrict format, va_list arg);
|
|
|
|
int vwscanf(const wchar_t * restrict format, va_list arg);
|
|
|
|
int wprintf(const wchar_t * restrict format, ...);
|
|
|
|
int wscanf(const wchar_t * restrict format, ...);
|
|
|
|
wint_t fgetwc(FILE *stream);
|
|
|
|
wchar_t *fgetws(wchar_t * restrict s, int n, FILE * restrict stream);
|
|
|
|
wint_t fputwc(wchar_t c, FILE *stream);
|
2022-06-06 00:16:44 +00:00
|
|
|
int fputws(const wchar_t * restrict s, FILE * restrict stream);
|
2022-06-02 06:28:17 +00:00
|
|
|
int fwide(FILE *stream, int mode);
|
|
|
|
wint_t getwc(FILE *stream);
|
|
|
|
wint_t getwchar(void);
|
|
|
|
wint_t putwc(wchar_t c, FILE *stream);
|
|
|
|
wint_t putwchar(wchar_t c);
|
|
|
|
wint_t ungetwc(wint_t c, FILE *stream);
|
|
|
|
double wcstod(const wchar_t * restrict nptr, wchar_t ** restrict endptr);
|
|
|
|
float wcstof(const wchar_t * restrict nptr, wchar_t ** restrict endptr);
|
|
|
|
long double wcstold(const wchar_t * restrict nptr, wchar_t ** restrict endptr);
|
|
|
|
long int wcstol(const wchar_t * restrict nptr, wchar_t ** restrict endptr, int base);
|
|
|
|
long long int wcstoll(const wchar_t * restrict nptr, wchar_t ** restrict endptr, int base);
|
|
|
|
unsigned long int wcstoul(const wchar_t * restrict nptr, wchar_t ** restrict endptr, int base);
|
|
|
|
unsigned long long int wcstoull(const wchar_t * restrict nptr, wchar_t ** restrict endptr, int base);
|
|
|
|
wchar_t *wcscpy(wchar_t * restrict s1, const wchar_t * restrict s2);
|
|
|
|
wchar_t *wcsncpy(wchar_t * restrict s1, const wchar_t * restrict s2, size_t n);
|
|
|
|
wchar_t *wmemcpy(wchar_t * restrict s1, const wchar_t * restrict s2, size_t n);
|
|
|
|
wchar_t *wmemmove(wchar_t *s1, const wchar_t *s2, size_t n);
|
|
|
|
wchar_t *wcscat(wchar_t * restrict s1, const wchar_t * restrict s2);
|
|
|
|
wchar_t *wcsncat(wchar_t * restrict s1, const wchar_t * restrict s2, size_t n);
|
|
|
|
int wcscmp(const wchar_t *s1, const wchar_t *s2);
|
|
|
|
int wcscoll(const wchar_t *s1, const wchar_t *s2);
|
|
|
|
int wcsncmp(const wchar_t *s1, const wchar_t *s2, size_t n);
|
|
|
|
size_t wcsxfrm(wchar_t * restrict s1, const wchar_t * restrict s2, size_t n);
|
|
|
|
int wmemcmp(const wchar_t *s1, const wchar_t *s2, size_t n);
|
|
|
|
wchar_t *wcschr(const wchar_t *s, wchar_t c);
|
|
|
|
size_t wcscspn(const wchar_t *s1, const wchar_t *s2);
|
|
|
|
wchar_t *wcspbrk(const wchar_t *s1, const wchar_t *s2);
|
|
|
|
wchar_t *wcsrchr(const wchar_t *s, wchar_t c);
|
|
|
|
size_t wcsspn(const wchar_t *s1, const wchar_t *s2);
|
|
|
|
wchar_t *wcsstr(const wchar_t *s1, const wchar_t *s2);
|
|
|
|
wchar_t *wcstok(wchar_t * restrict s1, const wchar_t * restrict s2, wchar_t ** restrict ptr);
|
|
|
|
wchar_t *wmemchr(const wchar_t *s, wchar_t c, size_t n);
|
|
|
|
size_t wcslen(const wchar_t *s);
|
|
|
|
wchar_t *wmemset(wchar_t *s, wchar_t c, size_t n);
|
|
|
|
size_t wcsftime(wchar_t * restrict s, size_t maxsize, const wchar_t * restrict format, const struct tm * restrict timeptr);
|
|
|
|
wint_t btowc(int c);
|
|
|
|
int wctob(wint_t c);
|
|
|
|
int mbsinit(const mbstate_t *ps);
|
|
|
|
size_t mbrlen(const char * restrict s, size_t n, mbstate_t * restrict ps);
|
|
|
|
size_t mbrtowc(wchar_t * restrict pwc, const char * restrict s, size_t n, mbstate_t * restrict ps);
|
|
|
|
size_t wcrtomb(char * restrict s, wchar_t wc, mbstate_t * restrict ps);
|
|
|
|
size_t mbsrtowcs(wchar_t * restrict dst, const char ** restrict src, size_t len, mbstate_t * restrict ps);
|
|
|
|
size_t wcsrtombs(char * restrict dst, const wchar_t ** restrict src, size_t len, mbstate_t * restrict ps);
|
|
|
|
|
|
|
|
#ifdef __STDC_WANT_LIB_EXT1__
|
2022-06-06 00:16:44 +00:00
|
|
|
int fwprintf_s(FILE * restrict stream, const wchar_t * restrict format, ...);
|
|
|
|
int fwscanf_s(FILE * restrict stream, const wchar_t * restrict format, ...);
|
|
|
|
int snwprintf_s(wchar_t * restrict s, rsize_t n, const wchar_t * restrict format, ...);
|
|
|
|
int swprintf_s(wchar_t * restrict s, rsize_t n, const wchar_t * restrict format, ...);
|
|
|
|
int swscanf_s(const wchar_t * restrict s, const wchar_t * restrict format, ...);
|
|
|
|
int vfwprintf_s(FILE * restrict stream, const wchar_t * restrict format, va_list arg);
|
|
|
|
int vfwscanf_s(FILE * restrict stream, const wchar_t * restrict format, va_list arg);
|
|
|
|
int vsnwprintf_s(wchar_t * restrict s, rsize_t n, const wchar_t * restrict format, va_list arg);
|
|
|
|
int vswprintf_s(wchar_t * restrict s, rsize_t n, const wchar_t * restrict format, va_list arg);
|
|
|
|
int vswscanf_s(const wchar_t * restrict s, const wchar_t * restrict format, va_list arg);
|
|
|
|
int vwprintf_s(const wchar_t * restrict format, va_list arg);
|
|
|
|
int vwscanf_s(const wchar_t * restrict format, va_list arg);
|
|
|
|
int wprintf_s(const wchar_t * restrict format, ...);
|
|
|
|
int wscanf_s(const wchar_t * restrict format, ...);
|
|
|
|
errno_t wcscpy_s(wchar_t * restrict s1, rsize_t s1max, const wchar_t * restrict s2);
|
|
|
|
errno_t wcsncpy_s(wchar_t * restrict s1, rsize_t s1max, const wchar_t * restrict s2, rsize_t n);
|
|
|
|
errno_t wmemcpy_s(wchar_t * restrict s1, rsize_t s1max, const wchar_t * restrict s2, rsize_t n);
|
|
|
|
errno_t wmemmove_s(wchar_t *s1, rsize_t s1max, const wchar_t *s2, rsize_t n);
|
|
|
|
errno_t wcscat_s(wchar_t * restrict s1, rsize_t s1max, const wchar_t * restrict s2);
|
|
|
|
errno_t wcsncat_s(wchar_t * restrict s1, rsize_t s1max, const wchar_t * restrict s2, rsize_t n);
|
|
|
|
wchar_t *wcstok_s(wchar_t * restrict s1, rsize_t * restrict s1max, const wchar_t * restrict s2, wchar_t ** restrict ptr);
|
|
|
|
size_t wcsnlen_s(const wchar_t *s, size_t maxsize);
|
|
|
|
errno_t wcrtomb_s(size_t * restrict retval, char * restrict s, rsize_t smax, wchar_t wc, mbstate_t * restrict ps);
|
|
|
|
errno_t mbsrtowcs_s(size_t * restrict retval, wchar_t * restrict dst, rsize_t dstmax, const char ** restrict src, rsize_t len, mbstate_t * restrict ps);
|
|
|
|
errno_t wcsrtombs_s(size_t * restrict retval, char * restrict dst, rsize_t dstmax, const wchar_t ** restrict src, rsize_t len, mbstate_t * restrict ps);
|
|
|
|
#endif
|