xref: /freebsd-12.1/contrib/libc++/include/cwchar (revision 5f5f8832)
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