_wchar.h revision 231673
1276789Sdim/*-
2276789Sdim * Copyright (c) 2011, 2012 The FreeBSD Foundation
3276789Sdim * All rights reserved.
4276789Sdim *
5276789Sdim * This software was developed by David Chisnall under sponsorship from
6276789Sdim * the FreeBSD Foundation.
7276789Sdim *
8276789Sdim * Redistribution and use in source and binary forms, with or without
9276789Sdim * modification, are permitted provided that the following conditions
10276789Sdim * are met:
11276789Sdim * 1. Redistributions of source code must retain the above copyright
12276789Sdim *    notice, this list of conditions and the following disclaimer.
13276789Sdim * 2. Redistributions in binary form must reproduce the above copyright
14276789Sdim *    notice, this list of conditions and the following disclaimer in the
15276789Sdim *    documentation and/or other materials provided with the distribution.
16276789Sdim *
17276789Sdim * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
18276789Sdim * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19276789Sdim * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20276789Sdim * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
21276789Sdim * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
22276789Sdim * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
23276789Sdim * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
24276789Sdim * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
25276789Sdim * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
26276789Sdim * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
27276789Sdim * SUCH DAMAGE.
28276789Sdim *
29276789Sdim * $FreeBSD: head/include/xlocale/_wchar.h 231673 2012-02-14 12:03:23Z theraven $
30276789Sdim */
31276789Sdim
32276789Sdim#ifndef _LOCALE_T_DEFINED
33276789Sdim#define _LOCALE_T_DEFINED
34276789Sdimtypedef struct	_xlocale *locale_t;
35276789Sdim#endif
36276789Sdim
37276789Sdim#ifndef _XLOCALE_WCHAR1_H
38276789Sdim#define _XLOCALE_WCHAR1_H
39276789Sdimint			 wcscasecmp_l(const wchar_t *, const wchar_t *,
40276789Sdim			   locale_t);
41276789Sdimint			 wcsncasecmp_l(const wchar_t *, const wchar_t *, size_t,
42276789Sdim			   locale_t);
43276789Sdimint			 wcscoll_l(const wchar_t *, const wchar_t *, locale_t);
44276789Sdimsize_t			 wcsxfrm_l(wchar_t * __restrict,
45276789Sdim			   const wchar_t * __restrict, size_t, locale_t);
46276789Sdim
47276789Sdim#endif /* _XLOCALE_WCHAR1_H */
48276789Sdim
49276789Sdim/*
50276789Sdim * Only declare the non-POSIX functions if we're included from xlocale.h.
51276789Sdim */
52276789Sdim
53276789Sdim#ifdef _XLOCALE_H_
54276789Sdim#ifndef _XLOCALE_WCHAR2_H
55276789Sdim#define _XLOCALE_WCHAR2_H
56276789Sdim
57276789Sdimwint_t			 btowc_l(int, locale_t);
58276789Sdimwint_t			 fgetwc_l(FILE *, locale_t);
59276789Sdimwchar_t			*fgetws_l(wchar_t * __restrict, int, FILE * __restrict,
60276789Sdim			    locale_t);
61276789Sdimwint_t			 fputwc_l(wchar_t, FILE *, locale_t);
62276789Sdimint			 fputws_l(const wchar_t * __restrict, FILE * __restrict,
63276789Sdim			   locale_t);
64276789Sdimint			 fwprintf_l(FILE * __restrict, locale_t,
65276789Sdim			    const wchar_t * __restrict, ...);
66276789Sdimint			 fwscanf_l(FILE * __restrict, locale_t,
67276789Sdim			    const wchar_t * __restrict, ...);
68276789Sdimwint_t			 getwc_l(FILE *, locale_t);
69276789Sdimwint_t			 getwchar_l(locale_t);
70276789Sdimsize_t			 mbrlen_l(const char * __restrict, size_t,
71276789Sdim			   mbstate_t * __restrict, locale_t);
72276789Sdimsize_t			 mbrtowc_l(wchar_t * __restrict,
73276789Sdim			    const char * __restrict, size_t,
74276789Sdim			    mbstate_t * __restrict, locale_t);
75276789Sdimint			 mbsinit_l(const mbstate_t *, locale_t);
76276789Sdimsize_t			 mbsrtowcs_l(wchar_t * __restrict,
77276789Sdim			    const char ** __restrict, size_t,
78276789Sdim			    mbstate_t * __restrict, locale_t);
79276789Sdimwint_t			 putwc_l(wchar_t, FILE *, locale_t);
80276789Sdimwint_t			 putwchar_l(wchar_t, locale_t);
81276789Sdimint			 swprintf_l(wchar_t * __restrict, size_t n, locale_t,
82276789Sdim			    const wchar_t * __restrict, ...);
83276789Sdimint			 swscanf_l(const wchar_t * __restrict, locale_t,
84276789Sdim			   const wchar_t * __restrict, ...);
85276789Sdimwint_t			 ungetwc_l(wint_t, FILE *, locale_t);
86276789Sdimint			 vfwprintf_l(FILE * __restrict, locale_t,
87276789Sdim			    const wchar_t * __restrict, __va_list);
88276789Sdimint			 vswprintf_l(wchar_t * __restrict, size_t n, locale_t,
89276789Sdim			    const wchar_t * __restrict, __va_list);
90276789Sdimint			 vwprintf_l(locale_t, const wchar_t * __restrict,
91276789Sdim			    __va_list);
92276789Sdimsize_t			 wcrtomb_l(char * __restrict, wchar_t,
93276789Sdim			    mbstate_t * __restrict, locale_t);
94276789Sdimsize_t			 wcsftime_l(wchar_t * __restrict, size_t,
95276789Sdim			    const wchar_t * __restrict,
96276789Sdim			    const struct tm * __restrict, locale_t);
97276789Sdimsize_t			 wcsrtombs_l(char * __restrict,
98276789Sdim			    const wchar_t ** __restrict, size_t,
99276789Sdim			    mbstate_t * __restrict, locale_t);
100276789Sdimdouble			 wcstod_l(const wchar_t * __restrict,
101276789Sdim			    wchar_t ** __restrict, locale_t);
102276789Sdimlong			 wcstol_l(const wchar_t * __restrict,
103276789Sdim			    wchar_t ** __restrict, int, locale_t);
104276789Sdimunsigned long		 wcstoul_l(const wchar_t * __restrict,
105276789Sdim			    wchar_t ** __restrict, int, locale_t);
106276789Sdimint			 wcswidth_l(const wchar_t *, size_t, locale_t);
107276789Sdimint			 wctob_l(wint_t, locale_t);
108276789Sdimint			 wcwidth_l(wchar_t, locale_t);
109276789Sdimint			 wprintf_l(locale_t, const wchar_t * __restrict, ...);
110276789Sdimint			 wscanf_l(locale_t, const wchar_t * __restrict, ...);
111276789Sdimint			 vfwscanf_l(FILE * __restrict, locale_t,
112276789Sdim			    const wchar_t * __restrict, __va_list);
113276789Sdimint			 vswscanf_l(const wchar_t * __restrict, locale_t,
114276789Sdim			    const wchar_t *__restrict, __va_list);
115276789Sdimint			 vwscanf_l(locale_t, const wchar_t * __restrict,
116276789Sdim			    __va_list);
117276789Sdimfloat			 wcstof_l(const wchar_t * __restrict,
118276789Sdim			    wchar_t ** __restrict, locale_t);
119276789Sdimlong double		 wcstold_l(const wchar_t * __restrict,
120276789Sdim			    wchar_t ** __restrict, locale_t);
121276789Sdimlong long		 wcstoll_l(const wchar_t * __restrict,
122276789Sdim			    wchar_t ** __restrict, int, locale_t);
123276789Sdimunsigned long long	 wcstoull_l(const wchar_t * __restrict,
124276789Sdim			    wchar_t ** __restrict, int, locale_t);
125276789Sdimsize_t			 mbsnrtowcs_l(wchar_t * __restrict,
126276789Sdim			    const char ** __restrict, size_t, size_t,
127276789Sdim			    mbstate_t * __restrict, locale_t);
128276789Sdimsize_t			 wcsnrtombs_l(char * __restrict,
129276789Sdim			    const wchar_t ** __restrict, size_t, size_t,
130276789Sdim			    mbstate_t * __restrict, locale_t);
131276789Sdim
132276789Sdim#endif /* _XLOCALE_WCHAR_H */
133276789Sdim#endif /* _XLOCALE_H_ */
134276789Sdim