1139823Simp#ifndef __NetBSD__ 2157067Srwatson#include <xlocale.h> 3157067Srwatson 4192753Srwatsonstatic __inline int 5157067SrwatsonMB_CUR_MAX_L(locale_t __l) { 611819Sjulian locale_t __old = uselocale(__l); 711819Sjulian size_t __rv = MB_CUR_MAX; 811819Sjulian (void)uselocale(__old); 911819Sjulian return __rv; 1011819Sjulian} 1111819Sjulian 1211819Sjulianstatic __inline size_t 1311819Sjulianwcsnrtombs_l(char * __restrict __to, const wchar_t ** __restrict __from, 1411819Sjulian size_t __nwc, size_t __len, mbstate_t * __restrict __st, locale_t __l) 15165899Srwatson{ 16165899Srwatson locale_t __old = uselocale(__l); 17165899Srwatson size_t __rv = wcsnrtombs(__to, __from, __nwc, __len, __st); 18165899Srwatson (void)uselocale(__old); 19165899Srwatson return __rv; 20165899Srwatson} 21165899Srwatson 22165899Srwatsonstatic __inline size_t 23165899Srwatsonmbsnrtowcs_l(wchar_t * __restrict __to, const char ** __restrict __from, 24165899Srwatson size_t __nms, size_t __len, mbstate_t * __restrict __st, locale_t __l) 25165899Srwatson{ 26165899Srwatson locale_t __old = uselocale(__l); 27165899Srwatson size_t __rv = mbsnrtowcs(__to, __from, __nms, __len, __st); 28165899Srwatson (void)uselocale(__old); 29165899Srwatson return __rv; 30165899Srwatson} 31165899Srwatson 32165899Srwatsonstatic __inline size_t 33165899Srwatsonwcrtomb_l(char * __restrict __to, wchar_t __from, 34165899Srwatson mbstate_t * __restrict __st, locale_t __l) 35165899Srwatson{ 36165899Srwatson locale_t __old = uselocale(__l); 37165899Srwatson size_t __rv = wcrtomb(__to, __from, __st); 38165899Srwatson (void)uselocale(__old); 39165899Srwatson return __rv; 40165899Srwatson} 41165899Srwatson 4211819Sjulianstatic __inline size_t 4311819Sjulianmbrtowc_l(wchar_t * __restrict __to, const char * __restrict __from, 4411819Sjulian size_t __len, mbstate_t * __restrict __st, locale_t __l) 4511819Sjulian{ 4611819Sjulian locale_t __old = uselocale(__l); 4711819Sjulian size_t __rv = mbrtowc(__to, __from, __len, __st); 4811819Sjulian (void)uselocale(__old); 4911819Sjulian return __rv; 5011819Sjulian} 5111819Sjulian 5211819Sjulianstatic __inline size_t 5311819Sjulianmbsrtowcs_l(wchar_t * __restrict __to, const char ** __restrict __from, 5411819Sjulian size_t __len, mbstate_t * __restrict __st, locale_t __l) 5511819Sjulian{ 5611819Sjulian locale_t __old = uselocale(__l); 5711819Sjulian size_t __rv = mbsrtowcs(__to, __from, __len, __st); 5811819Sjulian (void)uselocale(__old); 5911819Sjulian return __rv; 6011819Sjulian} 6111819Sjulian 6212057Sjulianstatic __inline int 6311819Sjulianwctob_l(wint_t __wc, locale_t __l) 6411819Sjulian{ 65116189Sobrien locale_t __old = uselocale(__l); 66116189Sobrien int __rv = wctob(__wc); 67116189Sobrien (void)uselocale(__old); 6811819Sjulian return __rv; 6976166Smarkm} 7029024Sbde#endif 7111819Sjulian