OLD | NEW |
(Empty) | |
| 1 // -*- C++ -*- |
| 2 //===--------------------------- cwchar -----------------------------------===// |
| 3 // |
| 4 // The LLVM Compiler Infrastructure |
| 5 // |
| 6 // This file is dual licensed under the MIT and the University of Illinois Open |
| 7 // Source Licenses. See LICENSE.TXT for details. |
| 8 // |
| 9 //===----------------------------------------------------------------------===// |
| 10 |
| 11 #ifndef _LIBCPP_CWCHAR |
| 12 #define _LIBCPP_CWCHAR |
| 13 |
| 14 /* |
| 15 cwchar synopsis |
| 16 |
| 17 Macros: |
| 18 |
| 19 NULL |
| 20 WCHAR_MAX |
| 21 WCHAR_MIN |
| 22 WEOF |
| 23 |
| 24 namespace std |
| 25 { |
| 26 |
| 27 Types: |
| 28 |
| 29 mbstate_t |
| 30 size_t |
| 31 tm |
| 32 wint_t |
| 33 |
| 34 int fwprintf(FILE* restrict stream, const wchar_t* restrict format, ...); |
| 35 int fwscanf(FILE* restrict stream, const wchar_t* restrict format, ...); |
| 36 int swprintf(wchar_t* restrict s, size_t n, const wchar_t* restrict format, ...)
; |
| 37 int swscanf(const wchar_t* restrict s, const wchar_t* restrict format, ...); |
| 38 int vfwprintf(FILE* restrict stream, const wchar_t* restrict format, va_list arg
); |
| 39 int vfwscanf(FILE* restrict stream, const wchar_t* restrict format, va_list arg)
; // C99 |
| 40 int vswprintf(wchar_t* restrict s, size_t n, const wchar_t* restrict format, va_
list arg); |
| 41 int vswscanf(const wchar_t* restrict s, const wchar_t* restrict format, va_list
arg); // C99 |
| 42 int vwprintf(const wchar_t* restrict format, va_list arg); |
| 43 int vwscanf(const wchar_t* restrict format, va_list arg); // C99 |
| 44 int wprintf(const wchar_t* restrict format, ...); |
| 45 int wscanf(const wchar_t* restrict format, ...); |
| 46 wint_t fgetwc(FILE* stream); |
| 47 wchar_t* fgetws(wchar_t* restrict s, int n, FILE* restrict stream); |
| 48 wint_t fputwc(wchar_t c, FILE* stream); |
| 49 int fputws(const wchar_t* restrict s, FILE* restrict stream); |
| 50 int fwide(FILE* stream, int mode); |
| 51 wint_t getwc(FILE* stream); |
| 52 wint_t getwchar(); |
| 53 wint_t putwc(wchar_t c, FILE* stream); |
| 54 wint_t putwchar(wchar_t c); |
| 55 wint_t ungetwc(wint_t c, FILE* stream); |
| 56 double wcstod(const wchar_t* restrict nptr, wchar_t** restrict endptr); |
| 57 float wcstof(const wchar_t* restrict nptr, wchar_t** restrict endptr); /
/ C99 |
| 58 long double wcstold(const wchar_t* restrict nptr, wchar_t** restrict endptr); /
/ C99 |
| 59 long wcstol(const wchar_t* restrict nptr, wchar_t** restrict endptr, int base); |
| 60 long long wcstoll(const wchar_t* restrict nptr, wchar_t** restrict endptr, int b
ase); // C99 |
| 61 unsigned long wcstoul(const wchar_t* restrict nptr, wchar_t** restrict endptr, i
nt base); |
| 62 unsigned long long wcstoull(const wchar_t* restrict nptr, wchar_t** restrict end
ptr, int base); // C99 |
| 63 wchar_t* wcscpy(wchar_t* restrict s1, const wchar_t* restrict s2); |
| 64 wchar_t* wcsncpy(wchar_t* restrict s1, const wchar_t* restrict s2, size_t n); |
| 65 wchar_t* wcscat(wchar_t* restrict s1, const wchar_t* restrict s2); |
| 66 wchar_t* wcsncat(wchar_t* restrict s1, const wchar_t* restrict s2, size_t n); |
| 67 int wcscmp(const wchar_t* s1, const wchar_t* s2); |
| 68 int wcscoll(const wchar_t* s1, const wchar_t* s2); |
| 69 int wcsncmp(const wchar_t* s1, const wchar_t* s2, size_t n); |
| 70 size_t wcsxfrm(wchar_t* restrict s1, const wchar_t* restrict s2, size_t n); |
| 71 const wchar_t* wcschr(const wchar_t* s, wchar_t c); |
| 72 wchar_t* wcschr( wchar_t* s, wchar_t c); |
| 73 size_t wcscspn(const wchar_t* s1, const wchar_t* s2); |
| 74 size_t wcslen(const wchar_t* s); |
| 75 const wchar_t* wcspbrk(const wchar_t* s1, const wchar_t* s2); |
| 76 wchar_t* wcspbrk( wchar_t* s1, const wchar_t* s2); |
| 77 const wchar_t* wcsrchr(const wchar_t* s, wchar_t c); |
| 78 wchar_t* wcsrchr( wchar_t* s, wchar_t c); |
| 79 size_t wcsspn(const wchar_t* s1, const wchar_t* s2); |
| 80 const wchar_t* wcsstr(const wchar_t* s1, const wchar_t* s2); |
| 81 wchar_t* wcsstr( wchar_t* s1, const wchar_t* s2); |
| 82 wchar_t* wcstok(wchar_t* restrict s1, const wchar_t* restrict s2, wchar_t** rest
rict ptr); |
| 83 const wchar_t* wmemchr(const wchar_t* s, wchar_t c, size_t n); |
| 84 wchar_t* wmemchr( wchar_t* s, wchar_t c, size_t n); |
| 85 int wmemcmp(wchar_t* restrict s1, const wchar_t* restrict s2, size_t n); |
| 86 wchar_t* wmemcpy(wchar_t* restrict s1, const wchar_t* restrict s2, size_t n); |
| 87 wchar_t* wmemmove(wchar_t* s1, const wchar_t* s2, size_t n); |
| 88 wchar_t* wmemset(wchar_t* s, wchar_t c, size_t n); |
| 89 size_t wcsftime(wchar_t* restrict s, size_t maxsize, const wchar_t* restrict for
mat, |
| 90 const tm* restrict timeptr); |
| 91 wint_t btowc(int c); |
| 92 int wctob(wint_t c); |
| 93 int mbsinit(const mbstate_t* ps); |
| 94 size_t mbrlen(const char* restrict s, size_t n, mbstate_t* restrict ps); |
| 95 size_t mbrtowc(wchar_t* restrict pwc, const char* restrict s, size_t n, mbstate_
t* restrict ps); |
| 96 size_t wcrtomb(char* restrict s, wchar_t wc, mbstate_t* restrict ps); |
| 97 size_t mbsrtowcs(wchar_t* restrict dst, const char** restrict src, size_t len, |
| 98 mbstate_t* restrict ps); |
| 99 size_t wcsrtombs(char* restrict dst, const wchar_t** restrict src, size_t len, |
| 100 mbstate_t* restrict ps); |
| 101 |
| 102 } // std |
| 103 |
| 104 */ |
| 105 |
| 106 #include <__config> |
| 107 #include <cwctype> |
| 108 #include <wchar.h> |
| 109 #if defined(_LIBCPP_MSVCRT) || defined(__MINGW32__) |
| 110 #include <support/win32/support.h> // pull in *swprintf defines |
| 111 #endif // _LIBCPP_MSVCRT |
| 112 |
| 113 #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) |
| 114 #pragma GCC system_header |
| 115 #endif |
| 116 |
| 117 _LIBCPP_BEGIN_NAMESPACE_STD |
| 118 |
| 119 using ::mbstate_t; |
| 120 using ::size_t; |
| 121 using ::tm; |
| 122 using ::wint_t; |
| 123 using ::FILE; |
| 124 using ::fwprintf; |
| 125 using ::fwscanf; |
| 126 using ::swprintf; |
| 127 using ::vfwprintf; |
| 128 using ::vswprintf; |
| 129 using ::vwprintf; |
| 130 #ifndef _LIBCPP_MSVCRT |
| 131 using ::swscanf; |
| 132 using ::vfwscanf; |
| 133 using ::vswscanf; |
| 134 using ::vwscanf; |
| 135 #endif // _LIBCPP_MSVCRT |
| 136 using ::wprintf; |
| 137 using ::wscanf; |
| 138 using ::fgetwc; |
| 139 using ::fgetws; |
| 140 using ::fputwc; |
| 141 using ::fputws; |
| 142 using ::fwide; |
| 143 using ::getwc; |
| 144 using ::getwchar; |
| 145 using ::putwc; |
| 146 using ::putwchar; |
| 147 using ::ungetwc; |
| 148 using ::wcstod; |
| 149 #ifndef _LIBCPP_MSVCRT |
| 150 using ::wcstof; |
| 151 using ::wcstold; |
| 152 #endif // _LIBCPP_MSVCRT |
| 153 using ::wcstol; |
| 154 #ifndef _LIBCPP_HAS_NO_LONG_LONG |
| 155 using ::wcstoll; |
| 156 #endif // _LIBCPP_HAS_NO_LONG_LONG |
| 157 using ::wcstoul; |
| 158 #ifndef _LIBCPP_HAS_NO_LONG_LONG |
| 159 using ::wcstoull; |
| 160 #endif // _LIBCPP_HAS_NO_LONG_LONG |
| 161 using ::wcscpy; |
| 162 using ::wcsncpy; |
| 163 using ::wcscat; |
| 164 using ::wcsncat; |
| 165 using ::wcscmp; |
| 166 using ::wcscoll; |
| 167 using ::wcsncmp; |
| 168 using ::wcsxfrm; |
| 169 |
| 170 #if defined(_WCHAR_H_CPLUSPLUS_98_CONFORMANCE_) |
| 171 |
| 172 using ::wcschr; |
| 173 using ::wcspbrk; |
| 174 using ::wcsrchr; |
| 175 using ::wcsstr; |
| 176 using ::wmemchr; |
| 177 |
| 178 #else |
| 179 |
| 180 inline _LIBCPP_INLINE_VISIBILITY const wchar_t* wcschr(const wchar_t* __s, wchar
_t __c) {return ::wcschr(__s, __c);} |
| 181 inline _LIBCPP_INLINE_VISIBILITY wchar_t* wcschr( wchar_t* __s, wchar
_t __c) {return ::wcschr(__s, __c);} |
| 182 |
| 183 inline _LIBCPP_INLINE_VISIBILITY const wchar_t* wcspbrk(const wchar_t* __s1, con
st wchar_t* __s2) {return ::wcspbrk(__s1, __s2);} |
| 184 inline _LIBCPP_INLINE_VISIBILITY wchar_t* wcspbrk( wchar_t* __s1, con
st wchar_t* __s2) {return ::wcspbrk(__s1, __s2);} |
| 185 |
| 186 inline _LIBCPP_INLINE_VISIBILITY const wchar_t* wcsrchr(const wchar_t* __s, wcha
r_t __c) {return ::wcsrchr(__s, __c);} |
| 187 inline _LIBCPP_INLINE_VISIBILITY wchar_t* wcsrchr( wchar_t* __s, wcha
r_t __c) {return ::wcsrchr(__s, __c);} |
| 188 |
| 189 inline _LIBCPP_INLINE_VISIBILITY const wchar_t* wcsstr(const wchar_t* __s1, cons
t wchar_t* __s2) {return ::wcsstr(__s1, __s2);} |
| 190 inline _LIBCPP_INLINE_VISIBILITY wchar_t* wcsstr( wchar_t* __s1, cons
t wchar_t* __s2) {return ::wcsstr(__s1, __s2);} |
| 191 |
| 192 inline _LIBCPP_INLINE_VISIBILITY const wchar_t* wmemchr(const wchar_t* __s, wcha
r_t __c, size_t __n) {return ::wmemchr(__s, __c, __n);} |
| 193 inline _LIBCPP_INLINE_VISIBILITY wchar_t* wmemchr( wchar_t* __s, wcha
r_t __c, size_t __n) {return ::wmemchr(__s, __c, __n);} |
| 194 |
| 195 #endif |
| 196 |
| 197 using ::wcscspn; |
| 198 using ::wcslen; |
| 199 using ::wcsspn; |
| 200 using ::wcstok; |
| 201 using ::wmemcmp; |
| 202 using ::wmemcpy; |
| 203 using ::wmemmove; |
| 204 using ::wmemset; |
| 205 using ::wcsftime; |
| 206 using ::btowc; |
| 207 using ::wctob; |
| 208 using ::mbsinit; |
| 209 using ::mbrlen; |
| 210 using ::mbrtowc; |
| 211 using ::wcrtomb; |
| 212 using ::mbsrtowcs; |
| 213 using ::wcsrtombs; |
| 214 |
| 215 _LIBCPP_END_NAMESPACE_STD |
| 216 |
| 217 #endif // _LIBCPP_CWCHAR |
OLD | NEW |