1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82
|
/* ----------------------------------------------------------------------------
* charcode.c
* ----------------------------------------------------------------------------
* Mastering programmed by YAMASHINA Hio
*
* Copyright 2008 YAMASHINA Hio
* ----------------------------------------------------------------------------
* $Id$
* ------------------------------------------------------------------------- */
#include "unijp.h"
#include "unijp_build.h"
#include <string.h>
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.
* ------------------------------------------------------------------------- */
|