xref: /llvm-project-15.0.7/libcxx/include/cwchar (revision 385cc25a)
13e519524SHoward Hinnant// -*- C++ -*-
2eb8650a7SLouis Dionne//===----------------------------------------------------------------------===//
33e519524SHoward Hinnant//
457b08b09SChandler Carruth// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
557b08b09SChandler Carruth// See https://llvm.org/LICENSE.txt for license information.
657b08b09SChandler Carruth// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
73e519524SHoward Hinnant//
83e519524SHoward Hinnant//===----------------------------------------------------------------------===//
93e519524SHoward Hinnant
103e519524SHoward Hinnant#ifndef _LIBCPP_CWCHAR
113e519524SHoward Hinnant#define _LIBCPP_CWCHAR
123e519524SHoward Hinnant
133e519524SHoward Hinnant/*
143e519524SHoward Hinnant    cwchar synopsis
153e519524SHoward Hinnant
163e519524SHoward HinnantMacros:
173e519524SHoward Hinnant
183e519524SHoward Hinnant    NULL
193e519524SHoward Hinnant    WCHAR_MAX
203e519524SHoward Hinnant    WCHAR_MIN
213e519524SHoward Hinnant    WEOF
223e519524SHoward Hinnant
233e519524SHoward Hinnantnamespace std
243e519524SHoward Hinnant{
253e519524SHoward Hinnant
263e519524SHoward HinnantTypes:
273e519524SHoward Hinnant
283e519524SHoward Hinnant    mbstate_t
293e519524SHoward Hinnant    size_t
303e519524SHoward Hinnant    tm
313e519524SHoward Hinnant    wint_t
323e519524SHoward Hinnant
333e519524SHoward Hinnantint fwprintf(FILE* restrict stream, const wchar_t* restrict format, ...);
343e519524SHoward Hinnantint fwscanf(FILE* restrict stream, const wchar_t* restrict format, ...);
353e519524SHoward Hinnantint swprintf(wchar_t* restrict s, size_t n, const wchar_t* restrict format, ...);
363e519524SHoward Hinnantint swscanf(const wchar_t* restrict s, const wchar_t* restrict format, ...);
373e519524SHoward Hinnantint vfwprintf(FILE* restrict stream, const wchar_t* restrict format, va_list arg);
383e519524SHoward Hinnantint vfwscanf(FILE* restrict stream, const wchar_t* restrict format, va_list arg);  // C99
393e519524SHoward Hinnantint vswprintf(wchar_t* restrict s, size_t n, const wchar_t* restrict format, va_list arg);
403e519524SHoward Hinnantint vswscanf(const wchar_t* restrict s, const wchar_t* restrict format, va_list arg);  // C99
413e519524SHoward Hinnantint vwprintf(const wchar_t* restrict format, va_list arg);
423e519524SHoward Hinnantint vwscanf(const wchar_t* restrict format, va_list arg);  // C99
433e519524SHoward Hinnantint wprintf(const wchar_t* restrict format, ...);
443e519524SHoward Hinnantint wscanf(const wchar_t* restrict format, ...);
453e519524SHoward Hinnantwint_t fgetwc(FILE* stream);
463e519524SHoward Hinnantwchar_t* fgetws(wchar_t* restrict s, int n, FILE* restrict stream);
473e519524SHoward Hinnantwint_t fputwc(wchar_t c, FILE* stream);
483e519524SHoward Hinnantint fputws(const wchar_t* restrict s, FILE* restrict stream);
493e519524SHoward Hinnantint fwide(FILE* stream, int mode);
503e519524SHoward Hinnantwint_t getwc(FILE* stream);
513e519524SHoward Hinnantwint_t getwchar();
523e519524SHoward Hinnantwint_t putwc(wchar_t c, FILE* stream);
533e519524SHoward Hinnantwint_t putwchar(wchar_t c);
543e519524SHoward Hinnantwint_t ungetwc(wint_t c, FILE* stream);
553e519524SHoward Hinnantdouble wcstod(const wchar_t* restrict nptr, wchar_t** restrict endptr);
563e519524SHoward Hinnantfloat wcstof(const wchar_t* restrict nptr, wchar_t** restrict endptr);         // C99
573e519524SHoward Hinnantlong double wcstold(const wchar_t* restrict nptr, wchar_t** restrict endptr);  // C99
583e519524SHoward Hinnantlong wcstol(const wchar_t* restrict nptr, wchar_t** restrict endptr, int base);
593e519524SHoward Hinnantlong long wcstoll(const wchar_t* restrict nptr, wchar_t** restrict endptr, int base);  // C99
603e519524SHoward Hinnantunsigned long wcstoul(const wchar_t* restrict nptr, wchar_t** restrict endptr, int base);
613e519524SHoward Hinnantunsigned long long wcstoull(const wchar_t* restrict nptr, wchar_t** restrict endptr, int base);  // C99
623e519524SHoward Hinnantwchar_t* wcscpy(wchar_t* restrict s1, const wchar_t* restrict s2);
633e519524SHoward Hinnantwchar_t* wcsncpy(wchar_t* restrict s1, const wchar_t* restrict s2, size_t n);
643e519524SHoward Hinnantwchar_t* wcscat(wchar_t* restrict s1, const wchar_t* restrict s2);
653e519524SHoward Hinnantwchar_t* wcsncat(wchar_t* restrict s1, const wchar_t* restrict s2, size_t n);
663e519524SHoward Hinnantint wcscmp(const wchar_t* s1, const wchar_t* s2);
673e519524SHoward Hinnantint wcscoll(const wchar_t* s1, const wchar_t* s2);
683e519524SHoward Hinnantint wcsncmp(const wchar_t* s1, const wchar_t* s2, size_t n);
693e519524SHoward Hinnantsize_t wcsxfrm(wchar_t* restrict s1, const wchar_t* restrict s2, size_t n);
703e519524SHoward Hinnantconst wchar_t* wcschr(const wchar_t* s, wchar_t c);
713e519524SHoward Hinnant      wchar_t* wcschr(      wchar_t* s, wchar_t c);
723e519524SHoward Hinnantsize_t wcscspn(const wchar_t* s1, const wchar_t* s2);
733e519524SHoward Hinnantsize_t wcslen(const wchar_t* s);
743e519524SHoward Hinnantconst wchar_t* wcspbrk(const wchar_t* s1, const wchar_t* s2);
753e519524SHoward Hinnant      wchar_t* wcspbrk(      wchar_t* s1, const wchar_t* s2);
763e519524SHoward Hinnantconst wchar_t* wcsrchr(const wchar_t* s, wchar_t c);
773e519524SHoward Hinnant      wchar_t* wcsrchr(      wchar_t* s, wchar_t c);
783e519524SHoward Hinnantsize_t wcsspn(const wchar_t* s1, const wchar_t* s2);
793e519524SHoward Hinnantconst wchar_t* wcsstr(const wchar_t* s1, const wchar_t* s2);
803e519524SHoward Hinnant      wchar_t* wcsstr(      wchar_t* s1, const wchar_t* s2);
813e519524SHoward Hinnantwchar_t* wcstok(wchar_t* restrict s1, const wchar_t* restrict s2, wchar_t** restrict ptr);
823e519524SHoward Hinnantconst wchar_t* wmemchr(const wchar_t* s, wchar_t c, size_t n);
833e519524SHoward Hinnant      wchar_t* wmemchr(      wchar_t* s, wchar_t c, size_t n);
843e519524SHoward Hinnantint wmemcmp(wchar_t* restrict s1, const wchar_t* restrict s2, size_t n);
853e519524SHoward Hinnantwchar_t* wmemcpy(wchar_t* restrict s1, const wchar_t* restrict s2, size_t n);
863e519524SHoward Hinnantwchar_t* wmemmove(wchar_t* s1, const wchar_t* s2, size_t n);
873e519524SHoward Hinnantwchar_t* wmemset(wchar_t* s, wchar_t c, size_t n);
883e519524SHoward Hinnantsize_t wcsftime(wchar_t* restrict s, size_t maxsize, const wchar_t* restrict format,
893e519524SHoward Hinnant                const tm* restrict timeptr);
903e519524SHoward Hinnantwint_t btowc(int c);
913e519524SHoward Hinnantint wctob(wint_t c);
923e519524SHoward Hinnantint mbsinit(const mbstate_t* ps);
933e519524SHoward Hinnantsize_t mbrlen(const char* restrict s, size_t n, mbstate_t* restrict ps);
943e519524SHoward Hinnantsize_t mbrtowc(wchar_t* restrict pwc, const char* restrict s, size_t n, mbstate_t* restrict ps);
953e519524SHoward Hinnantsize_t wcrtomb(char* restrict s, wchar_t wc, mbstate_t* restrict ps);
963e519524SHoward Hinnantsize_t mbsrtowcs(wchar_t* restrict dst, const char** restrict src, size_t len,
973e519524SHoward Hinnant                 mbstate_t* restrict ps);
983e519524SHoward Hinnantsize_t wcsrtombs(char* restrict dst, const wchar_t** restrict src, size_t len,
993e519524SHoward Hinnant                 mbstate_t* restrict ps);
1003e519524SHoward Hinnant
1013e519524SHoward Hinnant}  // std
1023e519524SHoward Hinnant
1033e519524SHoward Hinnant*/
1043e519524SHoward Hinnant
105*385cc25aSLouis Dionne#include <__assert> // all public C++ headers provide the assertion handler
1063e519524SHoward Hinnant#include <__config>
1073e519524SHoward Hinnant#include <cwctype>
1083e519524SHoward Hinnant#include <wchar.h>
1093e519524SHoward Hinnant
110073458b1SHoward Hinnant#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
1113e519524SHoward Hinnant#  pragma GCC system_header
112073458b1SHoward Hinnant#endif
1133e519524SHoward Hinnant
1143e519524SHoward Hinnant_LIBCPP_BEGIN_NAMESPACE_STD
1153e519524SHoward Hinnant
116a9c9183cSLouis Dionneusing ::mbstate_t _LIBCPP_USING_IF_EXISTS;
117a9c9183cSLouis Dionneusing ::size_t _LIBCPP_USING_IF_EXISTS;
118a9c9183cSLouis Dionneusing ::tm _LIBCPP_USING_IF_EXISTS;
119a9c9183cSLouis Dionneusing ::wint_t _LIBCPP_USING_IF_EXISTS;
120a9c9183cSLouis Dionneusing ::FILE _LIBCPP_USING_IF_EXISTS;
121a9c9183cSLouis Dionneusing ::fwprintf _LIBCPP_USING_IF_EXISTS;
122a9c9183cSLouis Dionneusing ::fwscanf _LIBCPP_USING_IF_EXISTS;
123a9c9183cSLouis Dionneusing ::swprintf _LIBCPP_USING_IF_EXISTS;
124a9c9183cSLouis Dionneusing ::vfwprintf _LIBCPP_USING_IF_EXISTS;
125a9c9183cSLouis Dionneusing ::vswprintf _LIBCPP_USING_IF_EXISTS;
126a9c9183cSLouis Dionneusing ::swscanf _LIBCPP_USING_IF_EXISTS;
127a9c9183cSLouis Dionneusing ::vfwscanf _LIBCPP_USING_IF_EXISTS;
128a9c9183cSLouis Dionneusing ::vswscanf _LIBCPP_USING_IF_EXISTS;
129a9c9183cSLouis Dionneusing ::fgetwc _LIBCPP_USING_IF_EXISTS;
130a9c9183cSLouis Dionneusing ::fgetws _LIBCPP_USING_IF_EXISTS;
131a9c9183cSLouis Dionneusing ::fputwc _LIBCPP_USING_IF_EXISTS;
132a9c9183cSLouis Dionneusing ::fputws _LIBCPP_USING_IF_EXISTS;
133a9c9183cSLouis Dionneusing ::fwide _LIBCPP_USING_IF_EXISTS;
134a9c9183cSLouis Dionneusing ::getwc _LIBCPP_USING_IF_EXISTS;
135a9c9183cSLouis Dionneusing ::putwc _LIBCPP_USING_IF_EXISTS;
136a9c9183cSLouis Dionneusing ::ungetwc _LIBCPP_USING_IF_EXISTS;
137a9c9183cSLouis Dionneusing ::wcstod _LIBCPP_USING_IF_EXISTS;
138a9c9183cSLouis Dionneusing ::wcstof _LIBCPP_USING_IF_EXISTS;
139a9c9183cSLouis Dionneusing ::wcstold _LIBCPP_USING_IF_EXISTS;
140a9c9183cSLouis Dionneusing ::wcstol _LIBCPP_USING_IF_EXISTS;
141a9c9183cSLouis Dionneusing ::wcstoll _LIBCPP_USING_IF_EXISTS;
142a9c9183cSLouis Dionneusing ::wcstoul _LIBCPP_USING_IF_EXISTS;
143a9c9183cSLouis Dionneusing ::wcstoull _LIBCPP_USING_IF_EXISTS;
144a9c9183cSLouis Dionneusing ::wcscpy _LIBCPP_USING_IF_EXISTS;
145a9c9183cSLouis Dionneusing ::wcsncpy _LIBCPP_USING_IF_EXISTS;
146a9c9183cSLouis Dionneusing ::wcscat _LIBCPP_USING_IF_EXISTS;
147a9c9183cSLouis Dionneusing ::wcsncat _LIBCPP_USING_IF_EXISTS;
148a9c9183cSLouis Dionneusing ::wcscmp _LIBCPP_USING_IF_EXISTS;
149a9c9183cSLouis Dionneusing ::wcscoll _LIBCPP_USING_IF_EXISTS;
150a9c9183cSLouis Dionneusing ::wcsncmp _LIBCPP_USING_IF_EXISTS;
151a9c9183cSLouis Dionneusing ::wcsxfrm _LIBCPP_USING_IF_EXISTS;
152a9c9183cSLouis Dionneusing ::wcschr _LIBCPP_USING_IF_EXISTS;
153a9c9183cSLouis Dionneusing ::wcspbrk _LIBCPP_USING_IF_EXISTS;
154a9c9183cSLouis Dionneusing ::wcsrchr _LIBCPP_USING_IF_EXISTS;
155a9c9183cSLouis Dionneusing ::wcsstr _LIBCPP_USING_IF_EXISTS;
156a9c9183cSLouis Dionneusing ::wmemchr _LIBCPP_USING_IF_EXISTS;
157a9c9183cSLouis Dionneusing ::wcscspn _LIBCPP_USING_IF_EXISTS;
158a9c9183cSLouis Dionneusing ::wcslen _LIBCPP_USING_IF_EXISTS;
159a9c9183cSLouis Dionneusing ::wcsspn _LIBCPP_USING_IF_EXISTS;
160a9c9183cSLouis Dionneusing ::wcstok _LIBCPP_USING_IF_EXISTS;
161a9c9183cSLouis Dionneusing ::wmemcmp _LIBCPP_USING_IF_EXISTS;
162a9c9183cSLouis Dionneusing ::wmemcpy _LIBCPP_USING_IF_EXISTS;
163a9c9183cSLouis Dionneusing ::wmemmove _LIBCPP_USING_IF_EXISTS;
164a9c9183cSLouis Dionneusing ::wmemset _LIBCPP_USING_IF_EXISTS;
165a9c9183cSLouis Dionneusing ::wcsftime _LIBCPP_USING_IF_EXISTS;
166a9c9183cSLouis Dionneusing ::btowc _LIBCPP_USING_IF_EXISTS;
167a9c9183cSLouis Dionneusing ::wctob _LIBCPP_USING_IF_EXISTS;
168a9c9183cSLouis Dionneusing ::mbsinit _LIBCPP_USING_IF_EXISTS;
169a9c9183cSLouis Dionneusing ::mbrlen _LIBCPP_USING_IF_EXISTS;
170a9c9183cSLouis Dionneusing ::mbrtowc _LIBCPP_USING_IF_EXISTS;
171a9c9183cSLouis Dionneusing ::wcrtomb _LIBCPP_USING_IF_EXISTS;
172a9c9183cSLouis Dionneusing ::mbsrtowcs _LIBCPP_USING_IF_EXISTS;
173a9c9183cSLouis Dionneusing ::wcsrtombs _LIBCPP_USING_IF_EXISTS;
1743e519524SHoward Hinnant
175a9c9183cSLouis Dionneusing ::getwchar _LIBCPP_USING_IF_EXISTS;
176a9c9183cSLouis Dionneusing ::vwscanf _LIBCPP_USING_IF_EXISTS;
177a9c9183cSLouis Dionneusing ::wscanf _LIBCPP_USING_IF_EXISTS;
178f4ac884fSEd Schouten
179a9c9183cSLouis Dionneusing ::putwchar _LIBCPP_USING_IF_EXISTS;
180a9c9183cSLouis Dionneusing ::vwprintf _LIBCPP_USING_IF_EXISTS;
181a9c9183cSLouis Dionneusing ::wprintf _LIBCPP_USING_IF_EXISTS;
182f4ac884fSEd Schouten
1833e519524SHoward Hinnant_LIBCPP_END_NAMESPACE_STD
1843e519524SHoward Hinnant
1853e519524SHoward Hinnant#endif // _LIBCPP_CWCHAR
186