/* ---------------------------------------------------------------------------- * charcode.c * ---------------------------------------------------------------------------- * Mastering programmed by YAMASHINA Hio * * Copyright 2008 YAMASHINA Hio * ---------------------------------------------------------------------------- * $Id$ * ------------------------------------------------------------------------- */ #include "unijp.h" #include "unijp_build.h" #include const uj_encname_t uj_encnames[] = { /* name: code: is_canon: in_ok: out_ok: */ { "auto", ujc_auto, uj_false, uj_true, uj_false }, { "utf8", ujc_utf8, uj_true, uj_true, uj_true }, { "sjis", ujc_sjis, uj_true, uj_true, uj_true }, { "eucjp", ujc_eucjp, uj_true, uj_true, uj_true }, { "euc", ujc_eucjp, uj_false, uj_true, uj_true }, { "jis", ujc_jis, uj_true, uj_true, uj_true }, { "ucs2", ujc_ucs2, uj_true, uj_true, uj_true }, { "ucs4", ujc_ucs4, uj_true, uj_true, uj_true }, { "utf16", ujc_utf16, uj_true, uj_true, uj_true }, { "ascii", ujc_ascii, uj_true, uj_true, uj_true }, { "binary", ujc_binary, uj_true, uj_true, uj_true }, { NULL, 0 }, }; /* ---------------------------------------------------------------------------- : uj_charcode_parse(str). +--------------------------------------------------------------------------- */ uj_charcode_t uj_charcode_parse(const char* name) { const uj_encname_t* p; for( p=&uj_encnames[0]; p->name; ++p ) { if( strcmp(name, p->name)==0 ) { return p->code; } } return ujc_undefined; } /* ---------------------------------------------------------------------------- : uj_charcode_parse_n(str, str_len). +--------------------------------------------------------------------------- */ uj_charcode_t uj_charcode_parse_n(const char* name, int str_len) { const uj_encname_t* p; for( p=&uj_encnames[0]; p->name; ++p ) { if( strncmp(name, p->name, str_len)==0 && p->name[str_len]=='\0' ) { return p->code; } } return ujc_undefined; } /* ---------------------------------------------------------------------------- : uj_charcode_str(code). +--------------------------------------------------------------------------- */ const char* uj_charcode_str(uj_charcode_t code) { const uj_encname_t* p; for( p=&uj_encnames[0]; p->name; ++p ) { if( p->code==code ) { return p->name; } } return "undefined"; } /* ---------------------------------------------------------------------------- * End of File. * ------------------------------------------------------------------------- */