#include "xwchar.h" #include "xlocale.h" int _ISO2022_init __P((_LocaleInfo *loc, const char *encoding)); int _SJIS_init __P((_LocaleInfo *loc, const char *encoding)); int _UTF8_init __P((_LocaleInfo *loc, const char *encoding)); int _C_init __P((_LocaleInfo *loc)); extern mbstate_t _mblen_state; extern mbstate_t _mbtowc_state; extern mbstate_t _wctomb_state; extern _LocaleInfo _default_locinfo; extern _LocaleInfo _locinfo; _LocaleInfo *_CurrentLocaleInfo = &_locinfo; void _SetLocaleInfo(_LocaleInfo *loc) { _mb_cur_max_ = loc->mbcurmax; _mbrtowc_ = loc->mbrtowc; _wcrtomb_ = loc->wcrtomb; _mbsinit_ = loc->mbsinit; #if 0 loc->stateinit(&_mblen_state); loc->stateinit(&_mbtowc_state); loc->stateinit(&_wctomb_state); #endif _CurrentLocaleInfo = loc; } void set_coding_system(const char *locale) { if (_SJIS_init(&_locinfo, locale) && _ISO2022_init(&_locinfo, locale) && _UTF8_init(&_locinfo, locale)) _C_init(&_locinfo); _SetLocaleInfo(&_locinfo); }