#ifndef _MBCTYPE_H_

#define _MBCTYPE_H_

#include <stdint.h>

/* escape character used for JIS encoding */
#define ESC_CHAR 0x1b

/* macros used to support SHIFT_JIS, EUC-JP, and JIS multibyte encodings */
#define _issjis1(c)    (((c) >= 0x81 && (c) <= 0x9f) || ((c) >= 0xe0 && (c) <= 0xef))
#define _issjis2(c)    (((c) >= 0x40 && (c) <= 0x7e) || ((c) >= 0x80 && (c) <= 0xfc))
#define _iseucjp(c)    ((c) >= 0xa1 && (c) <= 0xfe)
#define _isjis(c)      ((c) >= 0x21 && (c) <= 0x7e)

/* Conversion state information.  */
typedef struct
{
  int __count;
  union
  {
    int32_t __wch;
    unsigned char __wchb[4];
  } __value;		/* Value so far.  */
} _mbstate_t;

/* reentrant versions of multibyte support functions */
int	_mbtowc_r (wchar_t *, const char *, size_t, _mbstate_t *);
int	_mbstowc_r (wchar_t *, const char *, size_t, _mbstate_t *);
size_t	_mbstowcs_r (wchar_t *, const char *, size_t, _mbstate_t *);
int	_wctomb_r (char *, wchar_t, _mbstate_t *);
size_t	_wcstombs_r (char *, const wchar_t *, size_t, _mbstate_t *);

char *	__locale_charset (void);

#endif /* _MBCTYPE_H_ */
