#ifndef _MBLOCAL_H_
#define _MBLOCAL_H_
#include <runetype.h>
#include "xlocale_private.h"
#define SS2 0x008e
#define SS3 0x008f
struct xlocale_ctype {
struct xlocale_component header;
_RuneLocale *runes;
size_t (*__mbrtowc)(wchar_t * __restrict, const char * __restrict,
size_t, mbstate_t * __restrict);
int (*__mbsinit)(const mbstate_t *);
size_t (*__mbsnrtowcs)(wchar_t * __restrict, const char ** __restrict,
size_t, size_t, mbstate_t * __restrict);
size_t (*__wcrtomb)(char * __restrict, wchar_t, mbstate_t * __restrict);
size_t (*__wcsnrtombs)(char * __restrict, const wchar_t ** __restrict,
size_t, size_t, mbstate_t * __restrict);
size_t (*__mbintowcr)(wchar_t * __restrict dst,
const char * __restrict src, size_t dlen, size_t *slen,
int flags);
size_t (*__wcrtombin)(char * __restrict dst,
const wchar_t * __restrict src, size_t dlen, size_t *slen,
int flags);
int __mb_cur_max;
int __mb_sb_limit;
};
#define XLOCALE_CTYPE(x) ((struct xlocale_ctype*)(x)->components[XLC_CTYPE])
extern struct xlocale_ctype __xlocale_global_ctype;
int _none_init(struct xlocale_ctype *, _RuneLocale *) __dso_hidden;
int _UTF8_init(struct xlocale_ctype *, _RuneLocale *) __dso_hidden;
int _EUC_CN_init(struct xlocale_ctype *, _RuneLocale *) __dso_hidden;
int _EUC_JP_init(struct xlocale_ctype *, _RuneLocale *) __dso_hidden;
int _EUC_KR_init(struct xlocale_ctype *, _RuneLocale *) __dso_hidden;
int _EUC_TW_init(struct xlocale_ctype *, _RuneLocale *) __dso_hidden;
int _GB18030_init(struct xlocale_ctype *, _RuneLocale *) __dso_hidden;
int _GB2312_init(struct xlocale_ctype *, _RuneLocale *) __dso_hidden;
int _GBK_init(struct xlocale_ctype *, _RuneLocale *) __dso_hidden;
int _BIG5_init(struct xlocale_ctype *, _RuneLocale *) __dso_hidden;
int _MSKanji_init(struct xlocale_ctype *, _RuneLocale *) __dso_hidden;
int _ascii_init(struct xlocale_ctype *, _RuneLocale *) __dso_hidden;
typedef size_t (*mbrtowc_pfn_t)(wchar_t * __restrict,
const char * __restrict, size_t, mbstate_t * __restrict);
typedef size_t (*wcrtomb_pfn_t)(char * __restrict, wchar_t,
mbstate_t * __restrict);
size_t __mbsnrtowcs_std(wchar_t * __restrict, const char ** __restrict,
size_t, size_t, mbstate_t * __restrict, mbrtowc_pfn_t);
size_t __wcsnrtombs_std(char * __restrict, const wchar_t ** __restrict,
size_t, size_t, mbstate_t * __restrict, wcrtomb_pfn_t);
#endif