1 /* 2 * Copyright (C) 2002 Marcus Overhagen 3 * All rights reserved. 4 * 5 * Distributed under the terms of the MIT license 6 */ 7 #ifndef _WCHAR_H 8 #define _WCHAR_H 9 10 #include <wchar_t.h> 11 #include <stdio.h> 12 13 #define _WINT_T 14 typedef unsigned int wint_t; 15 typedef int wctype_t; 16 17 typedef struct { 18 int __count; 19 wint_t __value; 20 } mbstate_t; 21 22 #include <size_t.h> 23 24 extern wint_t fgetwc(FILE *); 25 extern wchar_t *fgetws(wchar_t *, int, FILE *); 26 extern wint_t fputwc(wchar_t, FILE *); 27 extern int fputws(const wchar_t *, FILE *); 28 extern wint_t getwc(FILE *); 29 extern wint_t getwchar(void); 30 31 extern int iswalnum(wint_t); 32 extern int iswalpha(wint_t); 33 extern int iswcntrl(wint_t); 34 extern int iswdigit(wint_t); 35 extern int iswgraph(wint_t); 36 extern int iswlower(wint_t); 37 extern int iswprint(wint_t); 38 extern int iswpunct(wint_t); 39 extern int iswspace(wint_t); 40 extern int iswupper(wint_t); 41 extern int iswxdigit(wint_t); 42 extern int iswctype(wint_t, wctype_t); 43 44 extern wint_t putwc(wchar_t, FILE *); 45 extern wint_t putwchar(wchar_t); 46 47 extern size_t mbrlen(const char *s, size_t n, mbstate_t *ps); 48 extern size_t mbrtowc(wchar_t *pwc, const char *s, size_t n, mbstate_t *ps); 49 extern size_t mbsrtowcs(wchar_t *dst, const char **src, size_t len, 50 mbstate_t *ps); 51 extern int mbsinit(const mbstate_t *); 52 53 extern wint_t towlower(wint_t); 54 extern wint_t towupper(wint_t); 55 extern wint_t ungetwc(wint_t, FILE *); 56 57 extern size_t wcrtomb(char *, wchar_t, mbstate_t *); 58 extern wchar_t *wcscat(wchar_t *, const wchar_t *); 59 extern wchar_t *wcschr(const wchar_t *, wchar_t); 60 extern int wcscmp(const wchar_t *ws1, const wchar_t *ws2); 61 extern int wcscoll(const wchar_t *ws1, const wchar_t *ws2); 62 extern wchar_t *wcscpy(wchar_t *, const wchar_t *); 63 extern size_t wcscspn(const wchar_t *, const wchar_t *); 64 extern size_t wcsftime(wchar_t *, size_t, const wchar_t *, 65 const struct tm *); 66 extern size_t wcslen(const wchar_t *); 67 extern wchar_t *wcsncat(wchar_t *, const wchar_t *, size_t); 68 extern int wcsncmp(const wchar_t *, const wchar_t *, size_t); 69 extern wchar_t *wcsncpy(wchar_t *, const wchar_t *, size_t); 70 extern wchar_t *wcspbrk(const wchar_t *, const wchar_t *); 71 extern wchar_t *wcsrchr(const wchar_t *, wchar_t); 72 extern size_t wcsrtombs(char *dst, const wchar_t **src, size_t len, 73 mbstate_t *ps); 74 extern size_t wcsspn(const wchar_t *, const wchar_t *); 75 extern double wcstod(const wchar_t *, wchar_t **); 76 extern wchar_t *wcstok(wchar_t *, const wchar_t *, wchar_t **); 77 extern long int wcstol(const wchar_t *, wchar_t **, int); 78 extern unsigned long int wcstoul(const wchar_t *, wchar_t **, int); 79 extern wchar_t *wcswcs(const wchar_t *, const wchar_t *); 80 extern int wcswidth(const wchar_t *, size_t); 81 extern size_t wcsxfrm(wchar_t *, const wchar_t *, size_t); 82 extern wctype_t wctype(const char *); 83 extern int wcwidth(wchar_t); 84 85 #define WEOF ((wint_t)(-1)) 86 87 #endif /* _WCHAR_H */ 88