From 510c100a8fa7e49c10a9971f76ec9ab70a51f0e4 Mon Sep 17 00:00:00 2001 From: Oliver Tappe Date: Mon, 22 Jun 2009 19:48:36 +0000 Subject: [PATCH] * synced wchar.h with POSIX and the implementations provided by our libroot * added WCHAR_MIN and WCHAR_MAX - already as 32-bit values, since that's what wchar_t is going to become, soon (and those values could not have been used before, since they were missing) * this is still work-in-progress though, I need to run more tests to find out which of these functions are actually working, too git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31182 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- headers/posix/wchar.h | 70 +++++++++++++++++++++++++++++++------------ 1 file changed, 51 insertions(+), 19 deletions(-) diff --git a/headers/posix/wchar.h b/headers/posix/wchar.h index 973f55ca47..843590eacd 100644 --- a/headers/posix/wchar.h +++ b/headers/posix/wchar.h @@ -29,43 +29,64 @@ typedef struct { } mbstate_t; +#define WEOF ((wint_t)(-1)) + +#define WCHAR_MIN 0x00000000UL +#define WCHAR_MAX 0x7FFFFFFFUL + + #ifdef __cplusplus extern "C" { #endif +extern wint_t btowc(int); + extern wint_t fgetwc(FILE *); extern wchar_t *fgetws(wchar_t *, int, FILE *); extern wint_t fputwc(wchar_t, FILE *); extern int fputws(const wchar_t *, FILE *); +extern int fwide(FILE *, int); +extern int fwprintf(FILE *, const wchar_t *, ...); +/*extern int fwscanf(FILE *, const wchar_t *, ...);*/ extern wint_t getwc(FILE *); extern wint_t getwchar(void); -extern int iswalnum(wint_t); -extern int iswalpha(wint_t); -extern int iswcntrl(wint_t); -extern int iswdigit(wint_t); -extern int iswgraph(wint_t); -extern int iswlower(wint_t); -extern int iswprint(wint_t); -extern int iswpunct(wint_t); -extern int iswspace(wint_t); -extern int iswupper(wint_t); -extern int iswxdigit(wint_t); -extern int iswctype(wint_t, wctype_t); +extern int iswalnum(wint_t); +extern int iswalpha(wint_t); +extern int iswcntrl(wint_t); +extern int iswctype(wint_t, wctype_t); +extern int iswdigit(wint_t); +extern int iswgraph(wint_t); +extern int iswlower(wint_t); +extern int iswprint(wint_t); +extern int iswpunct(wint_t); +extern int iswspace(wint_t); +extern int iswupper(wint_t); +extern int iswxdigit(wint_t); + +extern size_t mbrlen(const char *s, size_t n, mbstate_t *ps); +extern size_t mbrtowc(wchar_t *pwc, const char *s, size_t n, mbstate_t *ps); +extern int mbsinit(const mbstate_t *); +extern size_t mbsrtowcs(wchar_t *dst, const char **src, size_t len, + mbstate_t *ps); extern wint_t putwc(wchar_t, FILE *); extern wint_t putwchar(wchar_t); -extern size_t mbrlen(const char *s, size_t n, mbstate_t *ps); -extern size_t mbrtowc(wchar_t *pwc, const char *s, size_t n, mbstate_t *ps); -extern size_t mbsrtowcs(wchar_t *dst, const char **src, size_t len, - mbstate_t *ps); -extern int mbsinit(const mbstate_t *); +extern int swprintf(wchar_t *, size_t, const wchar_t *, ...); +/*extern int swscanf(const wchar_t *, const wchar_t *, ...);*/ extern wint_t towlower(wint_t); extern wint_t towupper(wint_t); extern wint_t ungetwc(wint_t, FILE *); +extern int vfwprintf(FILE *, const wchar_t *, va_list); +/*extern int vfwscanf(FILE *, const wchar_t *, va_list);*/ +extern int vswprintf(wchar_t *, size_t, const wchar_t *, va_list); +/*extern int vswscanf(const wchar_t *, const wchar_t *, va_list);*/ +extern int vwprintf(const wchar_t *, va_list); +/*extern int vwscanf(const wchar_t *, va_list);*/ + extern size_t wcrtomb(char *, wchar_t, mbstate_t *); extern wchar_t *wcscat(wchar_t *, const wchar_t *); extern wchar_t *wcschr(const wchar_t *, wchar_t); @@ -85,19 +106,30 @@ extern size_t wcsrtombs(char *dst, const wchar_t **src, size_t len, mbstate_t *ps); extern size_t wcsspn(const wchar_t *, const wchar_t *); extern double wcstod(const wchar_t *, wchar_t **); +extern float wcstof(const wchar_t *, wchar_t **); extern wchar_t *wcstok(wchar_t *, const wchar_t *, wchar_t **); extern long int wcstol(const wchar_t *, wchar_t **, int); +extern long double wcstold(const wchar_t *, wchar_t **); +extern long long wcstoll(const wchar_t *, wchar_t **, int); +extern unsigned long wcstoul(const wchar_t *, wchar_t **, int); +extern unsigned long long wcstoull(const wchar_t *, wchar_t **, int); extern unsigned long int wcstoul(const wchar_t *, wchar_t **, int); extern wchar_t *wcswcs(const wchar_t *, const wchar_t *); extern int wcswidth(const wchar_t *, size_t); extern size_t wcsxfrm(wchar_t *, const wchar_t *, size_t); +extern int wctob(wint_t); extern wctype_t wctype(const char *); extern int wcwidth(wchar_t); +extern wchar_t *wmemchr(const wchar_t *, wchar_t, size_t); +extern int wmemcmp(const wchar_t *, const wchar_t *, size_t); +extern wchar_t *wmemcpy(wchar_t *, const wchar_t *, size_t); +extern wchar_t *wmemmove(wchar_t *, const wchar_t *, size_t); +extern wchar_t *wmemset(wchar_t *, wchar_t, size_t); +extern int wprintf(const wchar_t *, ...); +/*extern int wscanf(const wchar_t *, ...);*/ #ifdef __cplusplus } #endif -#define WEOF ((wint_t)(-1)) - #endif /* _WCHAR_H */