1*ac8e35e1Smrg #ifndef __NetBSD__
2*ac8e35e1Smrg #include <xlocale.h>
3*ac8e35e1Smrg 
4*ac8e35e1Smrg static __inline int
MB_CUR_MAX_L(locale_t __l)5*ac8e35e1Smrg MB_CUR_MAX_L(locale_t __l) {
6*ac8e35e1Smrg 	locale_t __old = uselocale(__l);
7*ac8e35e1Smrg 	size_t __rv = MB_CUR_MAX;
8*ac8e35e1Smrg 	(void)uselocale(__old);
9*ac8e35e1Smrg 	return __rv;
10*ac8e35e1Smrg }
11*ac8e35e1Smrg 
12*ac8e35e1Smrg static __inline size_t
wcsnrtombs_l(char * __restrict __to,const wchar_t ** __restrict __from,size_t __nwc,size_t __len,mbstate_t * __restrict __st,locale_t __l)13*ac8e35e1Smrg wcsnrtombs_l(char * __restrict __to, const wchar_t ** __restrict __from,
14*ac8e35e1Smrg     size_t __nwc, size_t __len, mbstate_t * __restrict __st, locale_t __l)
15*ac8e35e1Smrg {
16*ac8e35e1Smrg 	locale_t __old = uselocale(__l);
17*ac8e35e1Smrg 	size_t __rv = wcsnrtombs(__to, __from, __nwc, __len, __st);
18*ac8e35e1Smrg 	(void)uselocale(__old);
19*ac8e35e1Smrg 	return __rv;
20*ac8e35e1Smrg }
21*ac8e35e1Smrg 
22*ac8e35e1Smrg static __inline size_t
mbsnrtowcs_l(wchar_t * __restrict __to,const char ** __restrict __from,size_t __nms,size_t __len,mbstate_t * __restrict __st,locale_t __l)23*ac8e35e1Smrg mbsnrtowcs_l(wchar_t * __restrict __to, const char ** __restrict __from,
24*ac8e35e1Smrg     size_t __nms, size_t __len, mbstate_t * __restrict __st, locale_t __l)
25*ac8e35e1Smrg {
26*ac8e35e1Smrg 	locale_t __old = uselocale(__l);
27*ac8e35e1Smrg 	size_t __rv = mbsnrtowcs(__to, __from, __nms, __len, __st);
28*ac8e35e1Smrg 	(void)uselocale(__old);
29*ac8e35e1Smrg 	return __rv;
30*ac8e35e1Smrg }
31*ac8e35e1Smrg 
32*ac8e35e1Smrg static __inline size_t
wcrtomb_l(char * __restrict __to,wchar_t __from,mbstate_t * __restrict __st,locale_t __l)33*ac8e35e1Smrg wcrtomb_l(char * __restrict __to, wchar_t __from,
34*ac8e35e1Smrg     mbstate_t * __restrict __st, locale_t __l)
35*ac8e35e1Smrg {
36*ac8e35e1Smrg 	locale_t __old = uselocale(__l);
37*ac8e35e1Smrg 	size_t __rv = wcrtomb(__to, __from, __st);
38*ac8e35e1Smrg 	(void)uselocale(__old);
39*ac8e35e1Smrg 	return __rv;
40*ac8e35e1Smrg }
41*ac8e35e1Smrg 
42*ac8e35e1Smrg static __inline size_t
mbrtowc_l(wchar_t * __restrict __to,const char * __restrict __from,size_t __len,mbstate_t * __restrict __st,locale_t __l)43*ac8e35e1Smrg mbrtowc_l(wchar_t * __restrict __to, const char * __restrict __from,
44*ac8e35e1Smrg     size_t __len, mbstate_t * __restrict __st, locale_t __l)
45*ac8e35e1Smrg {
46*ac8e35e1Smrg 	locale_t __old = uselocale(__l);
47*ac8e35e1Smrg 	size_t __rv = mbrtowc(__to, __from, __len, __st);
48*ac8e35e1Smrg 	(void)uselocale(__old);
49*ac8e35e1Smrg 	return __rv;
50*ac8e35e1Smrg }
51*ac8e35e1Smrg 
52*ac8e35e1Smrg static __inline size_t
mbsrtowcs_l(wchar_t * __restrict __to,const char ** __restrict __from,size_t __len,mbstate_t * __restrict __st,locale_t __l)53*ac8e35e1Smrg mbsrtowcs_l(wchar_t * __restrict __to, const char ** __restrict __from,
54*ac8e35e1Smrg     size_t __len, mbstate_t * __restrict __st, locale_t __l)
55*ac8e35e1Smrg {
56*ac8e35e1Smrg 	locale_t __old = uselocale(__l);
57*ac8e35e1Smrg 	size_t __rv = mbsrtowcs(__to, __from, __len, __st);
58*ac8e35e1Smrg 	(void)uselocale(__old);
59*ac8e35e1Smrg 	return __rv;
60*ac8e35e1Smrg }
61*ac8e35e1Smrg 
62*ac8e35e1Smrg static __inline int
wctob_l(wint_t __wc,locale_t __l)63*ac8e35e1Smrg wctob_l(wint_t __wc, locale_t __l)
64*ac8e35e1Smrg {
65*ac8e35e1Smrg 	locale_t __old = uselocale(__l);
66*ac8e35e1Smrg 	int __rv = wctob(__wc);
67*ac8e35e1Smrg 	(void)uselocale(__old);
68*ac8e35e1Smrg 	return __rv;
69*ac8e35e1Smrg }
70*ac8e35e1Smrg #endif
71