1*0a6a1f1dSLionel Sambuc /* $NetBSD: wchar.h,v 1.41 2014/10/13 00:47:03 christos Exp $ */ 22fe8fb19SBen Gras 38a304627SKees van Reeuwijk /*- 48a304627SKees van Reeuwijk * Copyright (c)1999 Citrus Project, 58a304627SKees van Reeuwijk * All rights reserved. 68a304627SKees van Reeuwijk * 78a304627SKees van Reeuwijk * Redistribution and use in source and binary forms, with or without 88a304627SKees van Reeuwijk * modification, are permitted provided that the following conditions 98a304627SKees van Reeuwijk * are met: 108a304627SKees van Reeuwijk * 1. Redistributions of source code must retain the above copyright 118a304627SKees van Reeuwijk * notice, this list of conditions and the following disclaimer. 128a304627SKees van Reeuwijk * 2. Redistributions in binary form must reproduce the above copyright 138a304627SKees van Reeuwijk * notice, this list of conditions and the following disclaimer in the 148a304627SKees van Reeuwijk * documentation and/or other materials provided with the distribution. 158a304627SKees van Reeuwijk * 168a304627SKees van Reeuwijk * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 178a304627SKees van Reeuwijk * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 188a304627SKees van Reeuwijk * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 198a304627SKees van Reeuwijk * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 208a304627SKees van Reeuwijk * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 218a304627SKees van Reeuwijk * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 228a304627SKees van Reeuwijk * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 238a304627SKees van Reeuwijk * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 248a304627SKees van Reeuwijk * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 258a304627SKees van Reeuwijk * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 268a304627SKees van Reeuwijk * SUCH DAMAGE. 278a304627SKees van Reeuwijk */ 288a304627SKees van Reeuwijk 298a304627SKees van Reeuwijk /*- 308a304627SKees van Reeuwijk * Copyright (c) 1999, 2000 The NetBSD Foundation, Inc. 318a304627SKees van Reeuwijk * All rights reserved. 328a304627SKees van Reeuwijk * 338a304627SKees van Reeuwijk * This code is derived from software contributed to The NetBSD Foundation 348a304627SKees van Reeuwijk * by Julian Coleman. 358a304627SKees van Reeuwijk * 368a304627SKees van Reeuwijk * Redistribution and use in source and binary forms, with or without 378a304627SKees van Reeuwijk * modification, are permitted provided that the following conditions 388a304627SKees van Reeuwijk * are met: 398a304627SKees van Reeuwijk * 1. Redistributions of source code must retain the above copyright 408a304627SKees van Reeuwijk * notice, this list of conditions and the following disclaimer. 418a304627SKees van Reeuwijk * 2. Redistributions in binary form must reproduce the above copyright 428a304627SKees van Reeuwijk * notice, this list of conditions and the following disclaimer in the 438a304627SKees van Reeuwijk * documentation and/or other materials provided with the distribution. 448a304627SKees van Reeuwijk * 458a304627SKees van Reeuwijk * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS 468a304627SKees van Reeuwijk * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 478a304627SKees van Reeuwijk * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 488a304627SKees van Reeuwijk * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS 498a304627SKees van Reeuwijk * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 508a304627SKees van Reeuwijk * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 518a304627SKees van Reeuwijk * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 528a304627SKees van Reeuwijk * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 538a304627SKees van Reeuwijk * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 548a304627SKees van Reeuwijk * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 558a304627SKees van Reeuwijk * POSSIBILITY OF SUCH DAMAGE. 568a304627SKees van Reeuwijk */ 578a304627SKees van Reeuwijk 588a304627SKees van Reeuwijk #ifndef _WCHAR_H_ 598a304627SKees van Reeuwijk #define _WCHAR_H_ 608a304627SKees van Reeuwijk 612fe8fb19SBen Gras #include <sys/cdefs.h> 622fe8fb19SBen Gras #include <sys/featuretest.h> 632fe8fb19SBen Gras #include <machine/wchar_limits.h> 642fe8fb19SBen Gras #include <sys/ansi.h> 652fe8fb19SBen Gras #include <sys/null.h> 668a304627SKees van Reeuwijk 678a304627SKees van Reeuwijk #include <stdio.h> /* for FILE* */ 688a304627SKees van Reeuwijk 692fe8fb19SBen Gras #if defined(_BSD_WCHAR_T_) && !defined(__cplusplus) 702fe8fb19SBen Gras typedef _BSD_WCHAR_T_ wchar_t; 712fe8fb19SBen Gras #undef _BSD_WCHAR_T_ 728a304627SKees van Reeuwijk #endif 738a304627SKees van Reeuwijk 742fe8fb19SBen Gras #ifdef _BSD_MBSTATE_T_ 752fe8fb19SBen Gras typedef _BSD_MBSTATE_T_ mbstate_t; 762fe8fb19SBen Gras #undef _BSD_MBSTATE_T_ 778a304627SKees van Reeuwijk #endif 788a304627SKees van Reeuwijk 792fe8fb19SBen Gras #ifdef _BSD_WINT_T_ 802fe8fb19SBen Gras typedef _BSD_WINT_T_ wint_t; 812fe8fb19SBen Gras #undef _BSD_WINT_T_ 822fe8fb19SBen Gras #endif 832fe8fb19SBen Gras 842fe8fb19SBen Gras #ifdef _BSD_SIZE_T_ 852fe8fb19SBen Gras typedef _BSD_SIZE_T_ size_t; 862fe8fb19SBen Gras #undef _BSD_SIZE_T_ 872fe8fb19SBen Gras #endif 888a304627SKees van Reeuwijk 89f14fb602SLionel Sambuc #if defined(_POSIX_C_SOURCE) 90f14fb602SLionel Sambuc #ifndef __VA_LIST_DECLARED 91f14fb602SLionel Sambuc typedef __va_list va_list; 92f14fb602SLionel Sambuc #define __VA_LIST_DECLARED 93f14fb602SLionel Sambuc #endif 94f14fb602SLionel Sambuc #endif 95f14fb602SLionel Sambuc 968a304627SKees van Reeuwijk struct tm; 978a304627SKees van Reeuwijk 982fe8fb19SBen Gras __BEGIN_DECLS 998a304627SKees van Reeuwijk wint_t btowc(int); 1008a304627SKees van Reeuwijk size_t mbrlen(const char * __restrict, size_t, mbstate_t * __restrict); 1018a304627SKees van Reeuwijk size_t mbrtowc(wchar_t * __restrict, const char * __restrict, size_t, 1028a304627SKees van Reeuwijk mbstate_t * __restrict); 1038a304627SKees van Reeuwijk int mbsinit(const mbstate_t *); 1048a304627SKees van Reeuwijk size_t mbsrtowcs(wchar_t * __restrict, const char ** __restrict, size_t, 1058a304627SKees van Reeuwijk mbstate_t * __restrict); 1068a304627SKees van Reeuwijk size_t wcrtomb(char * __restrict, wchar_t, mbstate_t * __restrict); 1078a304627SKees van Reeuwijk wchar_t *wcscat(wchar_t * __restrict, const wchar_t * __restrict); 1088a304627SKees van Reeuwijk wchar_t *wcschr(const wchar_t *, wchar_t); 1098a304627SKees van Reeuwijk int wcscmp(const wchar_t *, const wchar_t *); 1108a304627SKees van Reeuwijk int wcscoll(const wchar_t *, const wchar_t *); 1118a304627SKees van Reeuwijk wchar_t *wcscpy(wchar_t * __restrict, const wchar_t * __restrict); 1128a304627SKees van Reeuwijk size_t wcscspn(const wchar_t *, const wchar_t *); 1138a304627SKees van Reeuwijk size_t wcsftime(wchar_t * __restrict, size_t, const wchar_t * __restrict, 1148a304627SKees van Reeuwijk const struct tm * __restrict); 1158a304627SKees van Reeuwijk size_t wcslen(const wchar_t *); 1168a304627SKees van Reeuwijk wchar_t *wcsncat(wchar_t * __restrict, const wchar_t * __restrict, size_t); 1178a304627SKees van Reeuwijk int wcsncmp(const wchar_t *, const wchar_t *, size_t); 1188a304627SKees van Reeuwijk wchar_t *wcsncpy(wchar_t * __restrict , const wchar_t * __restrict, size_t); 1198a304627SKees van Reeuwijk wchar_t *wcspbrk(const wchar_t *, const wchar_t *); 1208a304627SKees van Reeuwijk wchar_t *wcsrchr(const wchar_t *, wchar_t); 1218a304627SKees van Reeuwijk size_t wcsrtombs(char * __restrict, const wchar_t ** __restrict, size_t, 1228a304627SKees van Reeuwijk mbstate_t * __restrict); 1238a304627SKees van Reeuwijk size_t wcsspn(const wchar_t *, const wchar_t *); 1248a304627SKees van Reeuwijk wchar_t *wcsstr(const wchar_t *, const wchar_t *); 1258a304627SKees van Reeuwijk wchar_t *wcstok(wchar_t * __restrict, const wchar_t * __restrict, 1268a304627SKees van Reeuwijk wchar_t ** __restrict); 1278a304627SKees van Reeuwijk size_t wcsxfrm(wchar_t *, const wchar_t *, size_t); 1288a304627SKees van Reeuwijk wchar_t *wcswcs(const wchar_t *, const wchar_t *); 1298a304627SKees van Reeuwijk wchar_t *wmemchr(const wchar_t *, wchar_t, size_t); 1308a304627SKees van Reeuwijk int wmemcmp(const wchar_t *, const wchar_t *, size_t); 1318a304627SKees van Reeuwijk wchar_t *wmemcpy(wchar_t * __restrict, const wchar_t * __restrict, size_t); 1328a304627SKees van Reeuwijk wchar_t *wmemmove(wchar_t *, const wchar_t *, size_t); 1338a304627SKees van Reeuwijk wchar_t *wmemset(wchar_t *, wchar_t, size_t); 1348a304627SKees van Reeuwijk 1358a304627SKees van Reeuwijk size_t wcslcat(wchar_t *, const wchar_t *, size_t); 1368a304627SKees van Reeuwijk size_t wcslcpy(wchar_t *, const wchar_t *, size_t); 1378a304627SKees van Reeuwijk int wcswidth(const wchar_t *, size_t); 1388a304627SKees van Reeuwijk int wctob(wint_t); 1398a304627SKees van Reeuwijk int wcwidth(wchar_t); 1408a304627SKees van Reeuwijk 1418a304627SKees van Reeuwijk unsigned long int wcstoul(const wchar_t * __restrict, 1428a304627SKees van Reeuwijk wchar_t ** __restrict, int); 1438a304627SKees van Reeuwijk long int wcstol(const wchar_t * __restrict, 1448a304627SKees van Reeuwijk wchar_t ** __restrict, int); 1458a304627SKees van Reeuwijk double wcstod(const wchar_t * __restrict, wchar_t ** __restrict); 1468a304627SKees van Reeuwijk 1478a304627SKees van Reeuwijk #if defined(_ISOC99_SOURCE) || (__STDC_VERSION__ - 0) > 199901L || \ 14884d9c625SLionel Sambuc defined(_NETBSD_SOURCE) || \ 14984d9c625SLionel Sambuc (_POSIX_C_SOURCE - 0) >= 200112L || (_XOPEN_SOURCE - 0) >= 600 1508a304627SKees van Reeuwijk float wcstof(const wchar_t * __restrict, wchar_t ** __restrict); 1518a304627SKees van Reeuwijk long double wcstold(const wchar_t * __restrict, wchar_t ** __restrict); 1528a304627SKees van Reeuwijk 1538a304627SKees van Reeuwijk /* LONGLONG */ 1548a304627SKees van Reeuwijk long long int wcstoll(const wchar_t * __restrict, 1558a304627SKees van Reeuwijk wchar_t ** __restrict, int); 1568a304627SKees van Reeuwijk /* LONGLONG */ 1578a304627SKees van Reeuwijk unsigned long long int wcstoull(const wchar_t * __restrict, 1588a304627SKees van Reeuwijk wchar_t ** __restrict, int); 1598a304627SKees van Reeuwijk #endif 1608a304627SKees van Reeuwijk 161*0a6a1f1dSLionel Sambuc #if (_POSIX_C_SOURCE - 0) >= 200809L || (_XOPEN_SOURCE - 0) >= 700 || \ 162*0a6a1f1dSLionel Sambuc defined(_NETBSD_SOURCE) 163*0a6a1f1dSLionel Sambuc FILE *open_wmemstream(wchar_t **, size_t *); 164*0a6a1f1dSLionel Sambuc #endif 165*0a6a1f1dSLionel Sambuc 1668a304627SKees van Reeuwijk wint_t ungetwc(wint_t, FILE *); 1678a304627SKees van Reeuwijk wint_t fgetwc(FILE *); 1688a304627SKees van Reeuwijk wchar_t *fgetws(wchar_t * __restrict, int, FILE * __restrict); 1698a304627SKees van Reeuwijk wint_t getwc(FILE *); 1708a304627SKees van Reeuwijk wint_t getwchar(void); 1718a304627SKees van Reeuwijk wint_t fputwc(wchar_t, FILE *); 1728a304627SKees van Reeuwijk int fputws(const wchar_t * __restrict, FILE * __restrict); 1738a304627SKees van Reeuwijk wint_t putwc(wchar_t, FILE *); 1748a304627SKees van Reeuwijk wint_t putwchar(wchar_t); 1758a304627SKees van Reeuwijk 1768a304627SKees van Reeuwijk int fwide(FILE *, int); 1778a304627SKees van Reeuwijk 1788a304627SKees van Reeuwijk wchar_t *fgetwln(FILE * __restrict, size_t * __restrict); 1798a304627SKees van Reeuwijk int fwprintf(FILE * __restrict, const wchar_t * __restrict, ...); 1808a304627SKees van Reeuwijk int fwscanf(FILE * __restrict, const wchar_t * __restrict, ...); 1818a304627SKees van Reeuwijk int swprintf(wchar_t * __restrict, size_t n, const wchar_t * __restrict, ...); 1828a304627SKees van Reeuwijk int swscanf(const wchar_t * __restrict, const wchar_t * __restrict, ...); 183f14fb602SLionel Sambuc int vfwprintf(FILE * __restrict, const wchar_t * __restrict, __va_list); 1848a304627SKees van Reeuwijk int vswprintf(wchar_t * __restrict, size_t, const wchar_t * __restrict, 185f14fb602SLionel Sambuc __va_list); 186f14fb602SLionel Sambuc int vwprintf(const wchar_t * __restrict, __va_list); 1878a304627SKees van Reeuwijk int wprintf(const wchar_t * __restrict, ...); 1888a304627SKees van Reeuwijk int wscanf(const wchar_t * __restrict, ...); 1898a304627SKees van Reeuwijk #if defined(_ISOC99_SOURCE) || (__STDC_VERSION__ - 0) > 199901L || \ 19084d9c625SLionel Sambuc defined(_NETBSD_SOURCE) || \ 19184d9c625SLionel Sambuc (_POSIX_C_SOURCE - 0) >= 200112L || (_XOPEN_SOURCE - 0) >= 600 192f14fb602SLionel Sambuc int vfwscanf(FILE * __restrict, const wchar_t * __restrict, __va_list); 1938a304627SKees van Reeuwijk int vswscanf(const wchar_t * __restrict, const wchar_t * __restrict, 194f14fb602SLionel Sambuc __va_list); 195f14fb602SLionel Sambuc int vwscanf(const wchar_t * __restrict, __va_list); 1968a304627SKees van Reeuwijk #endif 1978a304627SKees van Reeuwijk #if defined(_NETBSD_SOURCE) 1988a304627SKees van Reeuwijk struct tinfo; 1998a304627SKees van Reeuwijk int t_putws(struct tinfo *, const wchar_t *, int, void (*)(wchar_t, void *), 2008a304627SKees van Reeuwijk void *); 2018a304627SKees van Reeuwijk wchar_t *wcsdup (const wchar_t *); 2028a304627SKees van Reeuwijk int wcsncasecmp (const wchar_t *, const wchar_t *, size_t); 2038a304627SKees van Reeuwijk int wcscasecmp(const wchar_t *, const wchar_t *); 2048a304627SKees van Reeuwijk #endif 2052fe8fb19SBen Gras __END_DECLS 2068a304627SKees van Reeuwijk 2078a304627SKees van Reeuwijk #ifndef WEOF 2088a304627SKees van Reeuwijk #define WEOF ((wint_t)-1) 2098a304627SKees van Reeuwijk #endif 2108a304627SKees van Reeuwijk 2118a304627SKees van Reeuwijk #define getwc(f) fgetwc(f) 2128a304627SKees van Reeuwijk #define getwchar() getwc(stdin) 2138a304627SKees van Reeuwijk #define putwc(wc, f) fputwc((wc), (f)) 2148a304627SKees van Reeuwijk #define putwchar(wc) putwc((wc), stdout) 2158a304627SKees van Reeuwijk 21684d9c625SLionel Sambuc #if (_POSIX_C_SOURCE - 0) >= 200809L || defined(_NETBSD_SOURCE) 21784d9c625SLionel Sambuc # ifndef __LOCALE_T_DECLARED 21884d9c625SLionel Sambuc typedef struct _locale *locale_t; 21984d9c625SLionel Sambuc # define __LOCALE_T_DECLARED 22084d9c625SLionel Sambuc # endif 22184d9c625SLionel Sambuc __BEGIN_DECLS 22284d9c625SLionel Sambuc size_t mbsnrtowcs(wchar_t * __restrict, const char ** __restrict, size_t, 22384d9c625SLionel Sambuc size_t, mbstate_t * __restrict); 22484d9c625SLionel Sambuc size_t wcsnrtombs(char * __restrict, const wchar_t ** __restrict, size_t, 22584d9c625SLionel Sambuc size_t, mbstate_t * __restrict); 22684d9c625SLionel Sambuc 22784d9c625SLionel Sambuc int wcscoll_l(const wchar_t *, const wchar_t *, locale_t); 22884d9c625SLionel Sambuc size_t wcsxfrm_l(wchar_t *, const wchar_t *, size_t, locale_t); 22984d9c625SLionel Sambuc int wcsncasecmp_l(const wchar_t *, const wchar_t *, size_t, locale_t); 23084d9c625SLionel Sambuc int wcscasecmp_l(const wchar_t *, const wchar_t *, locale_t); 23184d9c625SLionel Sambuc 23284d9c625SLionel Sambuc size_t wcsftime_l(wchar_t * __restrict, size_t, const wchar_t * __restrict, 23384d9c625SLionel Sambuc const struct tm * __restrict, locale_t); 23484d9c625SLionel Sambuc 23584d9c625SLionel Sambuc float wcstof_l(const wchar_t * __restrict, wchar_t ** __restrict, locale_t); 23684d9c625SLionel Sambuc double wcstod_l(const wchar_t * __restrict, wchar_t ** __restrict, locale_t); 23784d9c625SLionel Sambuc long double wcstold_l(const wchar_t * __restrict, wchar_t ** __restrict, 23884d9c625SLionel Sambuc locale_t); 23984d9c625SLionel Sambuc long int wcstol_l(const wchar_t * __restrict, wchar_t ** __restrict, int, 24084d9c625SLionel Sambuc locale_t); 24184d9c625SLionel Sambuc unsigned long int wcstoul_l(const wchar_t * __restrict, 24284d9c625SLionel Sambuc wchar_t ** __restrict, int, locale_t); 24384d9c625SLionel Sambuc /* LONGLONG */ 24484d9c625SLionel Sambuc long long int wcstoll_l(const wchar_t * __restrict, wchar_t ** __restrict, int, 24584d9c625SLionel Sambuc locale_t); 24684d9c625SLionel Sambuc /* LONGLONG */ 24784d9c625SLionel Sambuc unsigned long long int wcstoull_l(const wchar_t * __restrict, 24884d9c625SLionel Sambuc wchar_t ** __restrict, int, locale_t); 24984d9c625SLionel Sambuc int wcwidth_l(wchar_t, locale_t); 25084d9c625SLionel Sambuc int wcswidth_l(const wchar_t *, size_t, locale_t); 25184d9c625SLionel Sambuc __END_DECLS 25284d9c625SLionel Sambuc #endif /* _POSIX_C_SOURCE || _NETBSD_SOURCE */ 25384d9c625SLionel Sambuc 25484d9c625SLionel Sambuc #if defined(_NETBSD_SOURCE) 25584d9c625SLionel Sambuc __BEGIN_DECLS 25684d9c625SLionel Sambuc wint_t btowc_l(int, locale_t); 25784d9c625SLionel Sambuc size_t mbrlen_l(const char * __restrict, size_t, mbstate_t * __restrict, 25884d9c625SLionel Sambuc locale_t); 25984d9c625SLionel Sambuc size_t mbrtowc_l(wchar_t * __restrict, const char * __restrict, size_t, 26084d9c625SLionel Sambuc mbstate_t * __restrict, locale_t); 26184d9c625SLionel Sambuc int mbsinit_l(const mbstate_t *, locale_t); 26284d9c625SLionel Sambuc size_t mbsrtowcs_l(wchar_t * __restrict, const char ** __restrict, size_t, 26384d9c625SLionel Sambuc mbstate_t * __restrict, locale_t); 26484d9c625SLionel Sambuc size_t mbsnrtowcs_l(wchar_t * __restrict, const char ** __restrict, size_t, 26584d9c625SLionel Sambuc size_t, mbstate_t * __restrict, locale_t); 26684d9c625SLionel Sambuc size_t wcrtomb_l(char * __restrict, wchar_t, mbstate_t * __restrict, locale_t); 26784d9c625SLionel Sambuc size_t wcsrtombs_l(char * __restrict, const wchar_t ** __restrict, size_t, 26884d9c625SLionel Sambuc mbstate_t * __restrict, locale_t); 26984d9c625SLionel Sambuc size_t wcsnrtombs_l(char * __restrict, const wchar_t ** __restrict, size_t, 27084d9c625SLionel Sambuc size_t, mbstate_t * __restrict, locale_t); 27184d9c625SLionel Sambuc int wctob_l(wint_t, locale_t); 27284d9c625SLionel Sambuc 27384d9c625SLionel Sambuc int fwprintf_l(FILE * __restrict, locale_t, const wchar_t * __restrict, ...); 27484d9c625SLionel Sambuc int swprintf_l(wchar_t * __restrict, size_t n, locale_t, 27584d9c625SLionel Sambuc const wchar_t * __restrict, ...); 27684d9c625SLionel Sambuc int vfwprintf_l(FILE * __restrict, locale_t, 27784d9c625SLionel Sambuc const wchar_t * __restrict, __va_list); 27884d9c625SLionel Sambuc int vswprintf_l(wchar_t * __restrict, size_t, locale_t, 27984d9c625SLionel Sambuc const wchar_t * __restrict, __va_list); 28084d9c625SLionel Sambuc int vwprintf_l(locale_t, const wchar_t * __restrict, __va_list); 28184d9c625SLionel Sambuc int wprintf_l(locale_t, const wchar_t * __restrict, ...); 28284d9c625SLionel Sambuc 28384d9c625SLionel Sambuc int fwscanf_l(FILE * __restrict, locale_t, const wchar_t * __restrict, ...); 28484d9c625SLionel Sambuc int swscanf_l(const wchar_t * __restrict, locale_t, const wchar_t * 28584d9c625SLionel Sambuc __restrict, ...); 28684d9c625SLionel Sambuc int wscanf_l(locale_t, const wchar_t * __restrict, ...); 28784d9c625SLionel Sambuc int vfwscanf_l(FILE * __restrict, locale_t, const wchar_t * __restrict, 28884d9c625SLionel Sambuc __va_list); 28984d9c625SLionel Sambuc int vswscanf_l(const wchar_t * __restrict, locale_t, const wchar_t * __restrict, 29084d9c625SLionel Sambuc __va_list); 29184d9c625SLionel Sambuc int vwscanf_l(locale_t, const wchar_t * __restrict, __va_list); 29284d9c625SLionel Sambuc __END_DECLS 29384d9c625SLionel Sambuc #endif /* _NETBSD_SOURCE */ 29484d9c625SLionel Sambuc 2958a304627SKees van Reeuwijk #endif /* !_WCHAR_H_ */ 296