diff options
author | Natanael Copa <natanael.copa@gmail.com> | 2008-12-29 20:43:30 +0100 |
---|---|---|
committer | Natanael Copa <natanael.copa@gmail.com> | 2008-12-29 20:43:30 +0100 |
commit | 616a7d3f8ab4856469b29f34328ea07161911676 (patch) | |
tree | 16f43496155845c5cf21be67b7b0735a71e36a10 | |
parent | ed43e815dff29308732d1f3f66f63c6e0a3b4c40 (diff) | |
download | uiconv-616a7d3f8ab4856469b29f34328ea07161911676.tar.bz2 uiconv-616a7d3f8ab4856469b29f34328ea07161911676.tar.xz |
support for alternative names of code sets
-rw-r--r-- | TODO | 4 | ||||
-rw-r--r-- | iconv.c | 16 | ||||
-rw-r--r-- | test.c | 2 |
3 files changed, 16 insertions, 6 deletions
@@ -1,2 +1,2 @@ -Support multiple names on same codesets. i.e UTF8 = UTF-8 - +Support for 3 and 4 char utf8 (full utf-8 support) +Support for EUC-JP @@ -43,12 +43,12 @@ struct converter supported_codesets[] = { .encode = &encode_ascii, }, { .code = UTF_8, - .name = "UTF-8", + .name = "UTF-8" "\0" "UTF8" "\0", .decode = &decode_utf_8, .encode = &encode_utf_8, }, { .code = ISO_8859_1, - .name = "ISO-8859-1", + .name = "ISO-8859-1" "\0" "ISO8859-1" "\0", .decode = &decode_iso_8859_1, .encode = &encode_iso_8859_1 }, { @@ -151,6 +151,16 @@ static void toupperstr(char *p) } } +static int is_codeset(const char *str, const char *list) +{ + while (*list) { + if (strcmp(str, list) == 0) + return 1; + list += strlen(list) + 1; + } + return 0; +} + static int find_converter(const char *str) { int i; @@ -159,7 +169,7 @@ static int find_converter(const char *str) buf[15] = '\0'; toupperstr(buf); for (i = 0; supported_codesets[i].code != -1; i++) { - if (strcmp(buf, supported_codesets[i].name) == 0) + if (is_codeset(buf, supported_codesets[i].name)) return i; } return -1; @@ -55,7 +55,7 @@ void convert_args(char *from, char *to, int argc, char **argv) int main(int argc, char **argv) { - char *codesets[] = { "ASCII", "ISO-8859-1", "UTF-8", "invalid", NULL }; + char *codesets[] = { "ASCII", "ISO-8859-1", "iso8859-1", "UTF-8", "utf8", "invalid", NULL }; char **from, **to; for (from = codesets; *from; from++) |