xref: /minix3/include/wchar.h (revision 0a6a1f1d05b60e214de2f05a7310ddd1f0e590e7)
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