cwchar revision 243671
1227825Stheraven// -*- C++ -*- 2227825Stheraven//===--------------------------- cwchar -----------------------------------===// 3227825Stheraven// 4227825Stheraven// The LLVM Compiler Infrastructure 5227825Stheraven// 6227825Stheraven// This file is dual licensed under the MIT and the University of Illinois Open 7227825Stheraven// Source Licenses. See LICENSE.TXT for details. 8227825Stheraven// 9227825Stheraven//===----------------------------------------------------------------------===// 10227825Stheraven 11227825Stheraven#ifndef _LIBCPP_CWCHAR 12227825Stheraven#define _LIBCPP_CWCHAR 13227825Stheraven 14227825Stheraven/* 15227825Stheraven cwchar synopsis 16227825Stheraven 17227825StheravenMacros: 18227825Stheraven 19227825Stheraven NULL 20227825Stheraven WCHAR_MAX 21227825Stheraven WCHAR_MIN 22227825Stheraven WEOF 23227825Stheraven 24227825Stheravennamespace std 25227825Stheraven{ 26227825Stheraven 27227825StheravenTypes: 28227825Stheraven 29227825Stheraven mbstate_t 30227825Stheraven size_t 31227825Stheraven tm 32227825Stheraven wint_t 33227825Stheraven 34227825Stheravenint fwprintf(FILE* restrict stream, const wchar_t* restrict format, ...); 35227825Stheravenint fwscanf(FILE* restrict stream, const wchar_t* restrict format, ...); 36227825Stheravenint swprintf(wchar_t* restrict s, size_t n, const wchar_t* restrict format, ...); 37227825Stheravenint swscanf(const wchar_t* restrict s, const wchar_t* restrict format, ...); 38227825Stheravenint vfwprintf(FILE* restrict stream, const wchar_t* restrict format, va_list arg); 39227825Stheravenint vfwscanf(FILE* restrict stream, const wchar_t* restrict format, va_list arg); // C99 40227825Stheravenint vswprintf(wchar_t* restrict s, size_t n, const wchar_t* restrict format, va_list arg); 41227825Stheravenint vswscanf(const wchar_t* restrict s, const wchar_t* restrict format, va_list arg); // C99 42227825Stheravenint vwprintf(const wchar_t* restrict format, va_list arg); 43227825Stheravenint vwscanf(const wchar_t* restrict format, va_list arg); // C99 44227825Stheravenint wprintf(const wchar_t* restrict format, ...); 45227825Stheravenint wscanf(const wchar_t* restrict format, ...); 46227825Stheravenwint_t fgetwc(FILE* stream); 47227825Stheravenwchar_t* fgetws(wchar_t* restrict s, int n, FILE* restrict stream); 48227825Stheravenwint_t fputwc(wchar_t c, FILE* stream); 49227825Stheravenint fputws(const wchar_t* restrict s, FILE* restrict stream); 50227825Stheravenint fwide(FILE* stream, int mode); 51227825Stheravenwint_t getwc(FILE* stream); 52227825Stheravenwint_t getwchar(); 53227825Stheravenwint_t putwc(wchar_t c, FILE* stream); 54227825Stheravenwint_t putwchar(wchar_t c); 55227825Stheravenwint_t ungetwc(wint_t c, FILE* stream); 56227825Stheravendouble wcstod(const wchar_t* restrict nptr, wchar_t** restrict endptr); 57227825Stheravenfloat wcstof(const wchar_t* restrict nptr, wchar_t** restrict endptr); // C99 58227825Stheravenlong double wcstold(const wchar_t* restrict nptr, wchar_t** restrict endptr); // C99 59227825Stheravenlong wcstol(const wchar_t* restrict nptr, wchar_t** restrict endptr, int base); 60227825Stheravenlong long wcstoll(const wchar_t* restrict nptr, wchar_t** restrict endptr, int base); // C99 61227825Stheravenunsigned long wcstoul(const wchar_t* restrict nptr, wchar_t** restrict endptr, int base); 62227825Stheravenunsigned long long wcstoull(const wchar_t* restrict nptr, wchar_t** restrict endptr, int base); // C99 63227825Stheravenwchar_t* wcscpy(wchar_t* restrict s1, const wchar_t* restrict s2); 64227825Stheravenwchar_t* wcsncpy(wchar_t* restrict s1, const wchar_t* restrict s2, size_t n); 65227825Stheravenwchar_t* wcscat(wchar_t* restrict s1, const wchar_t* restrict s2); 66227825Stheravenwchar_t* wcsncat(wchar_t* restrict s1, const wchar_t* restrict s2, size_t n); 67227825Stheravenint wcscmp(const wchar_t* s1, const wchar_t* s2); 68227825Stheravenint wcscoll(const wchar_t* s1, const wchar_t* s2); 69227825Stheravenint wcsncmp(const wchar_t* s1, const wchar_t* s2, size_t n); 70227825Stheravensize_t wcsxfrm(wchar_t* restrict s1, const wchar_t* restrict s2, size_t n); 71227825Stheravenconst wchar_t* wcschr(const wchar_t* s, wchar_t c); 72227825Stheraven wchar_t* wcschr( wchar_t* s, wchar_t c); 73227825Stheravensize_t wcscspn(const wchar_t* s1, const wchar_t* s2); 74227825Stheravensize_t wcslen(const wchar_t* s); 75227825Stheravenconst wchar_t* wcspbrk(const wchar_t* s1, const wchar_t* s2); 76227825Stheraven wchar_t* wcspbrk( wchar_t* s1, const wchar_t* s2); 77227825Stheravenconst wchar_t* wcsrchr(const wchar_t* s, wchar_t c); 78227825Stheraven wchar_t* wcsrchr( wchar_t* s, wchar_t c); 79227825Stheravensize_t wcsspn(const wchar_t* s1, const wchar_t* s2); 80227825Stheravenconst wchar_t* wcsstr(const wchar_t* s1, const wchar_t* s2); 81227825Stheraven wchar_t* wcsstr( wchar_t* s1, const wchar_t* s2); 82227825Stheravenwchar_t* wcstok(wchar_t* restrict s1, const wchar_t* restrict s2, wchar_t** restrict ptr); 83227825Stheravenconst wchar_t* wmemchr(const wchar_t* s, wchar_t c, size_t n); 84227825Stheraven wchar_t* wmemchr( wchar_t* s, wchar_t c, size_t n); 85227825Stheravenint wmemcmp(wchar_t* restrict s1, const wchar_t* restrict s2, size_t n); 86227825Stheravenwchar_t* wmemcpy(wchar_t* restrict s1, const wchar_t* restrict s2, size_t n); 87227825Stheravenwchar_t* wmemmove(wchar_t* s1, const wchar_t* s2, size_t n); 88227825Stheravenwchar_t* wmemset(wchar_t* s, wchar_t c, size_t n); 89227825Stheravensize_t wcsftime(wchar_t* restrict s, size_t maxsize, const wchar_t* restrict format, 90227825Stheraven const tm* restrict timeptr); 91227825Stheravenwint_t btowc(int c); 92227825Stheravenint wctob(wint_t c); 93227825Stheravenint mbsinit(const mbstate_t* ps); 94227825Stheravensize_t mbrlen(const char* restrict s, size_t n, mbstate_t* restrict ps); 95227825Stheravensize_t mbrtowc(wchar_t* restrict pwc, const char* restrict s, size_t n, mbstate_t* restrict ps); 96227825Stheravensize_t wcrtomb(char* restrict s, wchar_t wc, mbstate_t* restrict ps); 97227825Stheravensize_t mbsrtowcs(wchar_t* restrict dst, const char** restrict src, size_t len, 98227825Stheraven mbstate_t* restrict ps); 99227825Stheravensize_t wcsrtombs(char* restrict dst, const wchar_t** restrict src, size_t len, 100227825Stheraven mbstate_t* restrict ps); 101227825Stheraven 102227825Stheraven} // std 103227825Stheraven 104227825Stheraven*/ 105227825Stheraven 106227825Stheraven#include <__config> 107227825Stheraven#include <cwctype> 108227825Stheraven#include <wchar.h> 109227825Stheraven#if _WIN32 110227825Stheraven#include <support/win32/support.h> // pull in *swprintf defines 111227825Stheraven#endif // _WIN32 112227825Stheraven 113227825Stheraven#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) 114227825Stheraven#pragma GCC system_header 115227825Stheraven#endif 116227825Stheraven 117227825Stheraven_LIBCPP_BEGIN_NAMESPACE_STD 118227825Stheraven 119227825Stheravenusing ::mbstate_t; 120227825Stheravenusing ::size_t; 121227825Stheravenusing ::tm; 122227825Stheravenusing ::wint_t; 123227825Stheravenusing ::FILE; 124227825Stheravenusing ::fwprintf; 125227825Stheravenusing ::fwscanf; 126227825Stheravenusing ::swprintf; 127227825Stheravenusing ::vfwprintf; 128227825Stheravenusing ::vswprintf; 129227825Stheravenusing ::vwprintf; 130227825Stheraven#ifndef _MSC_VER 131227825Stheravenusing ::swscanf; 132227825Stheravenusing ::vfwscanf; 133227825Stheravenusing ::vswscanf; 134227825Stheravenusing ::vwscanf; 135227825Stheraven#endif // _MSC_VER 136227825Stheravenusing ::wprintf; 137227825Stheravenusing ::wscanf; 138227825Stheravenusing ::fgetwc; 139227825Stheravenusing ::fgetws; 140227825Stheravenusing ::fputwc; 141227825Stheravenusing ::fputws; 142227825Stheravenusing ::fwide; 143227825Stheravenusing ::getwc; 144227825Stheravenusing ::getwchar; 145227825Stheravenusing ::putwc; 146227825Stheravenusing ::putwchar; 147227825Stheravenusing ::ungetwc; 148227825Stheravenusing ::wcstod; 149227825Stheraven#ifndef _MSC_VER 150227825Stheravenusing ::wcstof; 151227825Stheravenusing ::wcstold; 152227825Stheraven#endif // _MSC_VER 153227825Stheravenusing ::wcstol; 154243671Stheraven#ifndef _LIBCPP_HAS_NO_LONG_LONG 155227825Stheravenusing ::wcstoll; 156243671Stheraven#endif // _LIBCPP_HAS_NO_LONG_LONG 157227825Stheravenusing ::wcstoul; 158243671Stheraven#ifndef _LIBCPP_HAS_NO_LONG_LONG 159227825Stheravenusing ::wcstoull; 160243671Stheraven#endif // _LIBCPP_HAS_NO_LONG_LONG 161227825Stheravenusing ::wcscpy; 162227825Stheravenusing ::wcsncpy; 163227825Stheravenusing ::wcscat; 164227825Stheravenusing ::wcsncat; 165227825Stheravenusing ::wcscmp; 166227825Stheravenusing ::wcscoll; 167227825Stheravenusing ::wcsncmp; 168227825Stheravenusing ::wcsxfrm; 169227825Stheraven 170227825Stheraveninline _LIBCPP_INLINE_VISIBILITY const wchar_t* wcschr(const wchar_t* __s, wchar_t __c) {return ::wcschr(__s, __c);} 171227825Stheraveninline _LIBCPP_INLINE_VISIBILITY wchar_t* wcschr( wchar_t* __s, wchar_t __c) {return ::wcschr(__s, __c);} 172227825Stheraven 173227825Stheravenusing ::wcscspn; 174227825Stheravenusing ::wcslen; 175227825Stheraven 176227825Stheraveninline _LIBCPP_INLINE_VISIBILITY const wchar_t* wcspbrk(const wchar_t* __s1, const wchar_t* __s2) {return ::wcspbrk(__s1, __s2);} 177227825Stheraveninline _LIBCPP_INLINE_VISIBILITY wchar_t* wcspbrk( wchar_t* __s1, const wchar_t* __s2) {return ::wcspbrk(__s1, __s2);} 178227825Stheraven 179227825Stheraveninline _LIBCPP_INLINE_VISIBILITY const wchar_t* wcsrchr(const wchar_t* __s, wchar_t __c) {return ::wcsrchr(__s, __c);} 180227825Stheraveninline _LIBCPP_INLINE_VISIBILITY wchar_t* wcsrchr( wchar_t* __s, wchar_t __c) {return ::wcsrchr(__s, __c);} 181227825Stheraven 182227825Stheravenusing ::wcsspn; 183227825Stheraven 184227825Stheraveninline _LIBCPP_INLINE_VISIBILITY const wchar_t* wcsstr(const wchar_t* __s1, const wchar_t* __s2) {return ::wcsstr(__s1, __s2);} 185227825Stheraveninline _LIBCPP_INLINE_VISIBILITY wchar_t* wcsstr( wchar_t* __s1, const wchar_t* __s2) {return ::wcsstr(__s1, __s2);} 186227825Stheraven 187227825Stheravenusing ::wcstok; 188227825Stheraven 189227825Stheraveninline _LIBCPP_INLINE_VISIBILITY const wchar_t* wmemchr(const wchar_t* __s, wchar_t __c, size_t __n) {return ::wmemchr(__s, __c, __n);} 190227825Stheraveninline _LIBCPP_INLINE_VISIBILITY wchar_t* wmemchr( wchar_t* __s, wchar_t __c, size_t __n) {return ::wmemchr(__s, __c, __n);} 191227825Stheraven 192227825Stheravenusing ::wmemcmp; 193227825Stheravenusing ::wmemcpy; 194227825Stheravenusing ::wmemmove; 195227825Stheravenusing ::wmemset; 196227825Stheravenusing ::wcsftime; 197227825Stheravenusing ::btowc; 198227825Stheravenusing ::wctob; 199227825Stheravenusing ::mbsinit; 200227825Stheravenusing ::mbrlen; 201227825Stheravenusing ::mbrtowc; 202227825Stheravenusing ::wcrtomb; 203227825Stheravenusing ::mbsrtowcs; 204227825Stheravenusing ::wcsrtombs; 205227825Stheraven 206227825Stheraven_LIBCPP_END_NAMESPACE_STD 207227825Stheraven 208227825Stheraven#endif // _LIBCPP_CWCHAR 209