17a984708SDavid Chisnall// -*- C++ -*- 27a984708SDavid Chisnall//===--------------------------- cwchar -----------------------------------===// 37a984708SDavid Chisnall// 47a984708SDavid Chisnall// The LLVM Compiler Infrastructure 57a984708SDavid Chisnall// 67a984708SDavid Chisnall// This file is dual licensed under the MIT and the University of Illinois Open 77a984708SDavid Chisnall// Source Licenses. See LICENSE.TXT for details. 87a984708SDavid Chisnall// 97a984708SDavid Chisnall//===----------------------------------------------------------------------===// 107a984708SDavid Chisnall 117a984708SDavid Chisnall#ifndef _LIBCPP_CWCHAR 127a984708SDavid Chisnall#define _LIBCPP_CWCHAR 137a984708SDavid Chisnall 147a984708SDavid Chisnall/* 157a984708SDavid Chisnall cwchar synopsis 167a984708SDavid Chisnall 177a984708SDavid ChisnallMacros: 187a984708SDavid Chisnall 197a984708SDavid Chisnall NULL 207a984708SDavid Chisnall WCHAR_MAX 217a984708SDavid Chisnall WCHAR_MIN 227a984708SDavid Chisnall WEOF 237a984708SDavid Chisnall 247a984708SDavid Chisnallnamespace std 257a984708SDavid Chisnall{ 267a984708SDavid Chisnall 277a984708SDavid ChisnallTypes: 287a984708SDavid Chisnall 297a984708SDavid Chisnall mbstate_t 307a984708SDavid Chisnall size_t 317a984708SDavid Chisnall tm 327a984708SDavid Chisnall wint_t 337a984708SDavid Chisnall 347a984708SDavid Chisnallint fwprintf(FILE* restrict stream, const wchar_t* restrict format, ...); 357a984708SDavid Chisnallint fwscanf(FILE* restrict stream, const wchar_t* restrict format, ...); 367a984708SDavid Chisnallint swprintf(wchar_t* restrict s, size_t n, const wchar_t* restrict format, ...); 377a984708SDavid Chisnallint swscanf(const wchar_t* restrict s, const wchar_t* restrict format, ...); 387a984708SDavid Chisnallint vfwprintf(FILE* restrict stream, const wchar_t* restrict format, va_list arg); 397a984708SDavid Chisnallint vfwscanf(FILE* restrict stream, const wchar_t* restrict format, va_list arg); // C99 407a984708SDavid Chisnallint vswprintf(wchar_t* restrict s, size_t n, const wchar_t* restrict format, va_list arg); 417a984708SDavid Chisnallint vswscanf(const wchar_t* restrict s, const wchar_t* restrict format, va_list arg); // C99 427a984708SDavid Chisnallint vwprintf(const wchar_t* restrict format, va_list arg); 437a984708SDavid Chisnallint vwscanf(const wchar_t* restrict format, va_list arg); // C99 447a984708SDavid Chisnallint wprintf(const wchar_t* restrict format, ...); 457a984708SDavid Chisnallint wscanf(const wchar_t* restrict format, ...); 467a984708SDavid Chisnallwint_t fgetwc(FILE* stream); 477a984708SDavid Chisnallwchar_t* fgetws(wchar_t* restrict s, int n, FILE* restrict stream); 487a984708SDavid Chisnallwint_t fputwc(wchar_t c, FILE* stream); 497a984708SDavid Chisnallint fputws(const wchar_t* restrict s, FILE* restrict stream); 507a984708SDavid Chisnallint fwide(FILE* stream, int mode); 517a984708SDavid Chisnallwint_t getwc(FILE* stream); 527a984708SDavid Chisnallwint_t getwchar(); 537a984708SDavid Chisnallwint_t putwc(wchar_t c, FILE* stream); 547a984708SDavid Chisnallwint_t putwchar(wchar_t c); 557a984708SDavid Chisnallwint_t ungetwc(wint_t c, FILE* stream); 567a984708SDavid Chisnalldouble wcstod(const wchar_t* restrict nptr, wchar_t** restrict endptr); 577a984708SDavid Chisnallfloat wcstof(const wchar_t* restrict nptr, wchar_t** restrict endptr); // C99 587a984708SDavid Chisnalllong double wcstold(const wchar_t* restrict nptr, wchar_t** restrict endptr); // C99 597a984708SDavid Chisnalllong wcstol(const wchar_t* restrict nptr, wchar_t** restrict endptr, int base); 607a984708SDavid Chisnalllong long wcstoll(const wchar_t* restrict nptr, wchar_t** restrict endptr, int base); // C99 617a984708SDavid Chisnallunsigned long wcstoul(const wchar_t* restrict nptr, wchar_t** restrict endptr, int base); 627a984708SDavid Chisnallunsigned long long wcstoull(const wchar_t* restrict nptr, wchar_t** restrict endptr, int base); // C99 637a984708SDavid Chisnallwchar_t* wcscpy(wchar_t* restrict s1, const wchar_t* restrict s2); 647a984708SDavid Chisnallwchar_t* wcsncpy(wchar_t* restrict s1, const wchar_t* restrict s2, size_t n); 657a984708SDavid Chisnallwchar_t* wcscat(wchar_t* restrict s1, const wchar_t* restrict s2); 667a984708SDavid Chisnallwchar_t* wcsncat(wchar_t* restrict s1, const wchar_t* restrict s2, size_t n); 677a984708SDavid Chisnallint wcscmp(const wchar_t* s1, const wchar_t* s2); 687a984708SDavid Chisnallint wcscoll(const wchar_t* s1, const wchar_t* s2); 697a984708SDavid Chisnallint wcsncmp(const wchar_t* s1, const wchar_t* s2, size_t n); 707a984708SDavid Chisnallsize_t wcsxfrm(wchar_t* restrict s1, const wchar_t* restrict s2, size_t n); 717a984708SDavid Chisnallconst wchar_t* wcschr(const wchar_t* s, wchar_t c); 727a984708SDavid Chisnall wchar_t* wcschr( wchar_t* s, wchar_t c); 737a984708SDavid Chisnallsize_t wcscspn(const wchar_t* s1, const wchar_t* s2); 747a984708SDavid Chisnallsize_t wcslen(const wchar_t* s); 757a984708SDavid Chisnallconst wchar_t* wcspbrk(const wchar_t* s1, const wchar_t* s2); 767a984708SDavid Chisnall wchar_t* wcspbrk( wchar_t* s1, const wchar_t* s2); 777a984708SDavid Chisnallconst wchar_t* wcsrchr(const wchar_t* s, wchar_t c); 787a984708SDavid Chisnall wchar_t* wcsrchr( wchar_t* s, wchar_t c); 797a984708SDavid Chisnallsize_t wcsspn(const wchar_t* s1, const wchar_t* s2); 807a984708SDavid Chisnallconst wchar_t* wcsstr(const wchar_t* s1, const wchar_t* s2); 817a984708SDavid Chisnall wchar_t* wcsstr( wchar_t* s1, const wchar_t* s2); 827a984708SDavid Chisnallwchar_t* wcstok(wchar_t* restrict s1, const wchar_t* restrict s2, wchar_t** restrict ptr); 837a984708SDavid Chisnallconst wchar_t* wmemchr(const wchar_t* s, wchar_t c, size_t n); 847a984708SDavid Chisnall wchar_t* wmemchr( wchar_t* s, wchar_t c, size_t n); 857a984708SDavid Chisnallint wmemcmp(wchar_t* restrict s1, const wchar_t* restrict s2, size_t n); 867a984708SDavid Chisnallwchar_t* wmemcpy(wchar_t* restrict s1, const wchar_t* restrict s2, size_t n); 877a984708SDavid Chisnallwchar_t* wmemmove(wchar_t* s1, const wchar_t* s2, size_t n); 887a984708SDavid Chisnallwchar_t* wmemset(wchar_t* s, wchar_t c, size_t n); 897a984708SDavid Chisnallsize_t wcsftime(wchar_t* restrict s, size_t maxsize, const wchar_t* restrict format, 907a984708SDavid Chisnall const tm* restrict timeptr); 917a984708SDavid Chisnallwint_t btowc(int c); 927a984708SDavid Chisnallint wctob(wint_t c); 937a984708SDavid Chisnallint mbsinit(const mbstate_t* ps); 947a984708SDavid Chisnallsize_t mbrlen(const char* restrict s, size_t n, mbstate_t* restrict ps); 957a984708SDavid Chisnallsize_t mbrtowc(wchar_t* restrict pwc, const char* restrict s, size_t n, mbstate_t* restrict ps); 967a984708SDavid Chisnallsize_t wcrtomb(char* restrict s, wchar_t wc, mbstate_t* restrict ps); 977a984708SDavid Chisnallsize_t mbsrtowcs(wchar_t* restrict dst, const char** restrict src, size_t len, 987a984708SDavid Chisnall mbstate_t* restrict ps); 997a984708SDavid Chisnallsize_t wcsrtombs(char* restrict dst, const wchar_t** restrict src, size_t len, 1007a984708SDavid Chisnall mbstate_t* restrict ps); 1017a984708SDavid Chisnall 1027a984708SDavid Chisnall} // std 1037a984708SDavid Chisnall 1047a984708SDavid Chisnall*/ 1057a984708SDavid Chisnall 1067a984708SDavid Chisnall#include <__config> 1077a984708SDavid Chisnall#include <cwctype> 1087a984708SDavid Chisnall#include <wchar.h> 1097a984708SDavid Chisnall 1107a984708SDavid Chisnall#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) 1117a984708SDavid Chisnall#pragma GCC system_header 1127a984708SDavid Chisnall#endif 1137a984708SDavid Chisnall 1147a984708SDavid Chisnall_LIBCPP_BEGIN_NAMESPACE_STD 1157a984708SDavid Chisnall 1167a984708SDavid Chisnallusing ::mbstate_t; 1177a984708SDavid Chisnallusing ::size_t; 1187a984708SDavid Chisnallusing ::tm; 1197a984708SDavid Chisnallusing ::wint_t; 1207a984708SDavid Chisnallusing ::FILE; 1217a984708SDavid Chisnallusing ::fwprintf; 1227a984708SDavid Chisnallusing ::fwscanf; 1237a984708SDavid Chisnallusing ::swprintf; 1247a984708SDavid Chisnallusing ::vfwprintf; 1257a984708SDavid Chisnallusing ::vswprintf; 1267a984708SDavid Chisnallusing ::swscanf; 1277a984708SDavid Chisnallusing ::vfwscanf; 1287a984708SDavid Chisnallusing ::vswscanf; 1297a984708SDavid Chisnallusing ::fgetwc; 1307a984708SDavid Chisnallusing ::fgetws; 1317a984708SDavid Chisnallusing ::fputwc; 1327a984708SDavid Chisnallusing ::fputws; 1337a984708SDavid Chisnallusing ::fwide; 1347a984708SDavid Chisnallusing ::getwc; 1357a984708SDavid Chisnallusing ::putwc; 1367a984708SDavid Chisnallusing ::ungetwc; 1377a984708SDavid Chisnallusing ::wcstod; 1387a984708SDavid Chisnallusing ::wcstof; 1397a984708SDavid Chisnallusing ::wcstold; 1407a984708SDavid Chisnallusing ::wcstol; 1417a984708SDavid Chisnall#ifndef _LIBCPP_HAS_NO_LONG_LONG 1427a984708SDavid Chisnallusing ::wcstoll; 1437a984708SDavid Chisnall#endif // _LIBCPP_HAS_NO_LONG_LONG 1447a984708SDavid Chisnallusing ::wcstoul; 1457a984708SDavid Chisnall#ifndef _LIBCPP_HAS_NO_LONG_LONG 1467a984708SDavid Chisnallusing ::wcstoull; 1477a984708SDavid Chisnall#endif // _LIBCPP_HAS_NO_LONG_LONG 1487a984708SDavid Chisnallusing ::wcscpy; 1497a984708SDavid Chisnallusing ::wcsncpy; 1507a984708SDavid Chisnallusing ::wcscat; 1517a984708SDavid Chisnallusing ::wcsncat; 1527a984708SDavid Chisnallusing ::wcscmp; 1537a984708SDavid Chisnallusing ::wcscoll; 154*5f5f8832SDimitry Andricusing ::wcsncmp; 1557a984708SDavid Chisnallusing ::wcsxfrm; 156*5f5f8832SDimitry Andricusing ::wcschr; 1577a984708SDavid Chisnallusing ::wcspbrk; 158*5f5f8832SDimitry Andricusing ::wcsrchr; 1597a984708SDavid Chisnallusing ::wcsstr; 160*5f5f8832SDimitry Andricusing ::wmemchr; 1617a984708SDavid Chisnallusing ::wcscspn; 1627a984708SDavid Chisnallusing ::wcslen; 1637a984708SDavid Chisnallusing ::wcsspn; 1647a984708SDavid Chisnallusing ::wcstok; 1657a984708SDavid Chisnallusing ::wmemcmp; 1667a984708SDavid Chisnallusing ::wmemcpy; 1677a984708SDavid Chisnallusing ::wmemmove; 1687a984708SDavid Chisnallusing ::wmemset; 1697a984708SDavid Chisnallusing ::wcsftime; 1707a984708SDavid Chisnallusing ::btowc; 1717a984708SDavid Chisnallusing ::wctob; 1727a984708SDavid Chisnallusing ::mbsinit; 1737a984708SDavid Chisnallusing ::mbrlen; 1747a984708SDavid Chisnallusing ::mbrtowc; 1757a984708SDavid Chisnallusing ::wcrtomb; 1767a984708SDavid Chisnallusing ::mbsrtowcs; 1777a984708SDavid Chisnallusing ::wcsrtombs; 1787a984708SDavid Chisnall 1797a984708SDavid Chisnall#ifndef _LIBCPP_HAS_NO_STDIN 1807a984708SDavid Chisnallusing ::getwchar; 1817a984708SDavid Chisnallusing ::vwscanf; 1827a984708SDavid Chisnallusing ::wscanf; 1837a984708SDavid Chisnall#endif 1847a984708SDavid Chisnall 1857a984708SDavid Chisnall#ifndef _LIBCPP_HAS_NO_STDOUT 1867a984708SDavid Chisnallusing ::putwchar; 1877a984708SDavid Chisnallusing ::vwprintf; 1887a984708SDavid Chisnallusing ::wprintf; 1897a984708SDavid Chisnall#endif 1907a984708SDavid Chisnall 1917a984708SDavid Chisnall_LIBCPP_END_NAMESPACE_STD 1927a984708SDavid Chisnall 1937a984708SDavid Chisnall#endif // _LIBCPP_CWCHAR 1947a984708SDavid Chisnall