diff options
Diffstat (limited to 'src/xutf8/utils')
| -rw-r--r-- | src/xutf8/utils/conv_gen.c | 268 | ||||
| -rw-r--r-- | src/xutf8/utils/convert_map.c | 260 | ||||
| -rw-r--r-- | src/xutf8/utils/create_table.c | 179 | ||||
| -rw-r--r-- | src/xutf8/utils/euc_tw.c | 54 |
4 files changed, 387 insertions, 374 deletions
diff --git a/src/xutf8/utils/conv_gen.c b/src/xutf8/utils/conv_gen.c index cd40a769b..c9790298d 100644 --- a/src/xutf8/utils/conv_gen.c +++ b/src/xutf8/utils/conv_gen.c @@ -30,147 +30,143 @@ #include <stdio.h> char buffer[1000000]; -int main(int argc, char **argv) -{ - char buf[80]; - int len; - char *encode[256]; - int encode_number = 0; - unsigned int i = 0; - unsigned char *ptr; - unsigned char *lst = ""; - size_t nb; - int nbb = 0; - len = fread(buffer, 1, 1000000, stdin); +int main(int argc, char **argv) { + char buf[80]; + int len; + char *encode[256]; + int encode_number = 0; + unsigned int i = 0; + unsigned char *ptr; + unsigned char *lst = ""; + size_t nb; + int nbb = 0; + len = fread(buffer, 1, 1000000, stdin); - puts(" "); - puts(" /*************** conv_gen.c ************/"); - buffer[len] = '\0'; - ptr = buffer; - - printf("const int ucs2fontmap" - "(char *s, unsigned int ucs, int enc)\n"); - printf("{\n"); - printf(" switch(enc) {\n"); - printf(" case 0:\n"); - printf(" s[0] = (char) ((ucs & 0xFF00) >> 8);\n"); - printf(" s[1] = (char) (ucs & 0xFF);\n"); - printf(" return 0;"); - while (len > 0) { - unsigned char *p = ptr; - unsigned char *f, *t; - - while (*p != ']') { - i++; - p++; - } - *(p - 1) = '\0'; - *(p - 6) = '\0'; - f = p - 5; - while (*p != '+') { i++; p++;} - p++; - t = p; - *(p + 4) = '\0'; - if (strcmp(lst, ptr)) { - encode_number++; - encode[encode_number] = ptr; - printf("\n break;"); - printf("\n case %d:\n", encode_number); - printf(" "); - } else { - printf(" else "); - } - lst = ptr; - printf("if (ucs <= 0x%s) {\n", t); - printf(" if (ucs >= 0x%s) {\n", f); - if (*(f - 3) == '2') { - printf(" int i = (ucs - 0x%s) * 2;\n", f); - printf(" s[0] = %s_%s[i++];\n", ptr, f, f); - printf(" s[1] = %s_%s[i];\n", ptr, f, f); - printf(" if (s[0] || s[1]) return %d;\n", - encode_number); - } else { - printf(" s[0] = 0;\n"); - printf(" s[1] = %s_%s[ucs - 0x%s];\n", - ptr, f, f); - printf(" if (s[1]) return %d;\n", encode_number); - } - printf(" }\n"); - printf(" }"); - while (*ptr != '\n') { - ptr++; - len--; - } - ptr++; - len--; - } - printf("\n break;\n"); - printf("\n default:\n"); - printf(" break;\n"); - printf(" };\n"); - printf(" return -1;\n"); - printf("};\n\n"); + puts(" "); + puts(" /*************** conv_gen.c ************/"); + buffer[len] = '\0'; + ptr = buffer; + + printf("const int ucs2fontmap" + "(char *s, unsigned int ucs, int enc)\n"); + printf("{\n"); + printf(" switch(enc) {\n"); + printf(" case 0:\n"); + printf(" s[0] = (char) ((ucs & 0xFF00) >> 8);\n"); + printf(" s[1] = (char) (ucs & 0xFF);\n"); + printf(" return 0;"); + while (len > 0) { + unsigned char *p = ptr; + unsigned char *f, *t; + + while (*p != ']') { + i++; + p++; + } + *(p - 1) = '\0'; + *(p - 6) = '\0'; + f = p - 5; + while (*p != '+') { i++; p++;} + p++; + t = p; + *(p + 4) = '\0'; + if (strcmp(lst, ptr)) { + encode_number++; + encode[encode_number] = ptr; + printf("\n break;"); + printf("\n case %d:\n", encode_number); + printf(" "); + } else { + printf(" else "); + } + lst = ptr; + printf("if (ucs <= 0x%s) {\n", t); + printf(" if (ucs >= 0x%s) {\n", f); + if (*(f - 3) == '2') { + printf(" int i = (ucs - 0x%s) * 2;\n", f); + printf(" s[0] = %s_%s[i++];\n", ptr, f, f); + printf(" s[1] = %s_%s[i];\n", ptr, f, f); + printf(" if (s[0] || s[1]) return %d;\n", encode_number); + } else { + printf(" s[0] = 0;\n"); + printf(" s[1] = %s_%s[ucs - 0x%s];\n", ptr, f, f); + printf(" if (s[1]) return %d;\n", encode_number); + } + printf(" }\n"); + printf(" }"); + while (*ptr != '\n') { + ptr++; + len--; + } + ptr++; + len--; + } + printf("\n break;\n"); + printf("\n default:\n"); + printf(" break;\n"); + printf(" };\n"); + printf(" return -1;\n"); + printf("};\n\n"); - printf("const int encoding_number(const char *enc)\n{\n"); - printf(" if (!enc || !strcmp(enc, \"iso10646-1\")) {\n"); - printf(" return 0;\n"); - i = 1; - while (i <= encode_number) { - int l; - char *ptr; - l = strlen(encode[i]) - 3; - ptr = encode[i] + l; - *(ptr) = '\0'; - ptr--; - while (ptr != encode[i]) { - if (*ptr == '_') { - *ptr = '-'; - ptr--; - break; - } - ptr--; - } - while (ptr != encode[i]) { - if (*ptr == '_') { - *ptr = '.'; - } - ptr--; - } - printf(" } else if (!strcmp(enc, \"%s\")", encode[i] +11); + printf("const int encoding_number(const char *enc)\n{\n"); + printf(" if (!enc || !strcmp(enc, \"iso10646-1\")) {\n"); + printf(" return 0;\n"); + i = 1; + while (i <= encode_number) { + int l; + char *ptr; + l = strlen(encode[i]) - 3; + ptr = encode[i] + l; + *(ptr) = '\0'; + ptr--; + while (ptr != encode[i]) { + if (*ptr == '_') { + *ptr = '-'; + ptr--; + break; + } + ptr--; + } + while (ptr != encode[i]) { + if (*ptr == '_') { + *ptr = '.'; + } + ptr--; + } + printf(" } else if (!strcmp(enc, \"%s\")", encode[i] +11); - if (!strcmp(encode[i] + 11, "big5-0")) { - printf(" || !strcmp(enc, \"big5.eten-0\")"); - } else if (!strcmp(encode[i] + 11, "dingbats")) { - printf(" || !strcmp(enc, \"zapfdingbats\")"); - printf(" || !strcmp(enc, \"zapf dingbats\")"); - printf(" || !strcmp(enc, \"itc zapf dingbats\")"); - } else if (!strcmp(encode[i] + 11, "jisx0208.1983-0")) { - printf(" || !strcmp(enc, \"jisx0208.1990-0\")"); - } + if (!strcmp(encode[i] + 11, "big5-0")) { + printf(" || !strcmp(enc, \"big5.eten-0\")"); + } else if (!strcmp(encode[i] + 11, "dingbats")) { + printf(" || !strcmp(enc, \"zapfdingbats\")"); + printf(" || !strcmp(enc, \"zapf dingbats\")"); + printf(" || !strcmp(enc, \"itc zapf dingbats\")"); + } else if (!strcmp(encode[i] + 11, "jisx0208.1983-0")) { + printf(" || !strcmp(enc, \"jisx0208.1990-0\")"); + } - printf(") {\n"); - printf(" return %d;\n", i); - i++; - } - printf(" };\n"); - printf(" return -1;\n"); - printf("};\n\n"); + printf(") {\n"); + printf(" return %d;\n", i); + i++; + } + printf(" };\n"); + printf(" return -1;\n"); + printf("};\n\n"); - - printf("/*\n"); - printf("const char *encoding_name(int num)\n{\n"); - printf(" switch (num) {\n"); - i = 1; - while (i <= encode_number) { - printf(" case %d:\n", i); - printf(" return \"%s\";\n", encode[i] + 11); - i++; - } - printf(" };\n"); - printf(" return \"iso10646-1\";\n"); - printf("};\n\n"); - printf("*/\n"); - return 0; + printf("/*\n"); + printf("const char *encoding_name(int num)\n{\n"); + printf(" switch (num) {\n"); + i = 1; + while (i <= encode_number) { + printf(" case %d:\n", i); + printf(" return \"%s\";\n", encode[i] + 11); + i++; + } + printf(" };\n"); + printf(" return \"iso10646-1\";\n"); + printf("};\n\n"); + printf("*/\n"); + return 0; } /* diff --git a/src/xutf8/utils/convert_map.c b/src/xutf8/utils/convert_map.c index 976c06db8..6e9c6492a 100644 --- a/src/xutf8/utils/convert_map.c +++ b/src/xutf8/utils/convert_map.c @@ -33,149 +33,145 @@ char buffer[1000000]; -int JIS0208(unsigned char * ptr) -{ - int i = 0; - unsigned int fmap; - unsigned int ucs; - while(*ptr != '\t') { ptr++; i++; } - ptr++; i++; *(ptr+6) = '\0'; - fmap = (unsigned int)strtoul(ptr, NULL, 16); - while(*ptr != '\0') { ptr++; i++; } - i++; ptr++; *(ptr+6) = '\0'; - ucs = (unsigned int)strtoul(ptr, NULL, 16); - if (ucs) printf("/* U+%04X */ 0x%02X, 0x%02X,\n", ucs, - (fmap & 0xFF00) >> 8, fmap & 0xFF); - while(*ptr != '\0') { ptr++; i++; } - i++; ptr++; - while(*ptr != '\n') { ptr++; i++; } - i++; - return i; +int JIS0208(unsigned char * ptr) { + int i = 0; + unsigned int fmap; + unsigned int ucs; + while(*ptr != '\t') { ptr++; i++; } + ptr++; i++; *(ptr+6) = '\0'; + fmap = (unsigned int)strtoul(ptr, NULL, 16); + while(*ptr != '\0') { ptr++; i++; } + i++; ptr++; *(ptr+6) = '\0'; + ucs = (unsigned int)strtoul(ptr, NULL, 16); + if (ucs) + printf("/* U+%04X */ 0x%02X, 0x%02X,\n", ucs, + (fmap & 0xFF00) >> 8, fmap & 0xFF); + while(*ptr != '\0') { ptr++; i++; } + i++; ptr++; + while(*ptr != '\n') { ptr++; i++; } + i++; + return i; } -int JIS0201(unsigned char * ptr) -{ - int i = 0; - unsigned int fmap; - unsigned int ucs; - *(ptr+4) = '\0'; - fmap = (unsigned int)strtoul(ptr, NULL, 16); - while(*ptr != '\0') { ptr++; i++; } - i++; ptr++; *(ptr+6) = '\0'; - ucs = (unsigned int)strtoul(ptr, NULL, 16); - if (*(ptr + 1) != 'x') { - printf("/* EOF */\n"); - abort(); - } - if (ucs) printf("/* U+%04X */ 0x%02X,\n", ucs, (unsigned char)fmap); - while(*ptr != '\0') { ptr++; i++; } - i++; ptr++; - while(*ptr != '\n') { ptr++; i++; } - i++; - return i; +int JIS0201(unsigned char * ptr) { + int i = 0; + unsigned int fmap; + unsigned int ucs; + *(ptr+4) = '\0'; + fmap = (unsigned int)strtoul(ptr, NULL, 16); + while(*ptr != '\0') { ptr++; i++; } + i++; ptr++; *(ptr+6) = '\0'; + ucs = (unsigned int)strtoul(ptr, NULL, 16); + if (*(ptr + 1) != 'x') { + printf("/* EOF */\n"); + abort(); + } + if (ucs) printf("/* U+%04X */ 0x%02X,\n", ucs, (unsigned char)fmap); + while(*ptr != '\0') { ptr++; i++; } + i++; ptr++; + while(*ptr != '\n') { ptr++; i++; } + i++; + return i; } -int ADOBE(unsigned char * ptr) -{ - int i = 0; - unsigned int fmap; - unsigned int ucs; - *(ptr+4) = '\0'; - ucs = (unsigned int)strtoul(ptr, NULL, 16); - while(*ptr != '\0') { ptr++; i++; } - i++; ptr++; *(ptr+2) = '\0'; - fmap = (unsigned int)strtoul(ptr, NULL, 16); - if (fmap < 1) { - printf("/* EOF */\n"); - abort(); - } - if (ucs) printf("/* U+%04X */ 0x%02X,\n", ucs, (unsigned char)fmap); - while(*ptr != '\0') { ptr++; i++; } - i++; ptr++; - while(*ptr != '\n') { ptr++; i++; } - i++; - return i; +int ADOBE(unsigned char * ptr) { + int i = 0; + unsigned int fmap; + unsigned int ucs; + *(ptr+4) = '\0'; + ucs = (unsigned int)strtoul(ptr, NULL, 16); + while(*ptr != '\0') { ptr++; i++; } + i++; ptr++; *(ptr+2) = '\0'; + fmap = (unsigned int)strtoul(ptr, NULL, 16); + if (fmap < 1) { + printf("/* EOF */\n"); + abort(); + } + if (ucs) printf("/* U+%04X */ 0x%02X,\n", ucs, (unsigned char)fmap); + while(*ptr != '\0') { ptr++; i++; } + i++; ptr++; + while(*ptr != '\n') { ptr++; i++; } + i++; + return i; } -int JIS0212(unsigned char * ptr) -{ - int i = 0; - unsigned int fmap; - unsigned int ucs; - *(ptr+6) = '\0'; - fmap = (unsigned int)strtoul(ptr, NULL, 16); - ptr += 7; - i += 7; - while(*ptr == ' ') { ptr++; i++; } - //i++; ptr++; - *(ptr+6) = '\0'; - ucs = (unsigned int)strtoul(ptr, NULL, 16); - if (*(ptr + 1) != 'x') { - printf("/* EOF */\n"); - abort(); - } - if (ucs) printf("/* U+%04X */ 0x%02X, 0x%02X,\n", ucs, - (fmap & 0xFF00) >> 8, fmap & 0xFF); - while(*ptr != '\0') { ptr++; i++; } - i++; ptr++; - while(*ptr != '\n') { ptr++; i++; } - i++; - return i; +int JIS0212(unsigned char * ptr) { + int i = 0; + unsigned int fmap; + unsigned int ucs; + *(ptr+6) = '\0'; + fmap = (unsigned int)strtoul(ptr, NULL, 16); + ptr += 7; + i += 7; + while(*ptr == ' ') { ptr++; i++; } + //i++; ptr++; + *(ptr+6) = '\0'; + ucs = (unsigned int)strtoul(ptr, NULL, 16); + if (*(ptr + 1) != 'x') { + printf("/* EOF */\n"); + abort(); + } + if (ucs) + printf("/* U+%04X */ 0x%02X, 0x%02X,\n", ucs, + (fmap & 0xFF00) >> 8, fmap & 0xFF); + while(*ptr != '\0') { ptr++; i++; } + i++; ptr++; + while(*ptr != '\n') { ptr++; i++; } + i++; + return i; } -int main(int argc, char **argv) -{ - char buf[80]; - int len; - int i; - unsigned char *ptr; - size_t nb; - len = fread(buffer, 1, 1000000, stdin); +int main(int argc, char **argv) { + char buf[80]; + int len; + int i; + unsigned char *ptr; + size_t nb; + len = fread(buffer, 1, 1000000, stdin); - buffer[len] = '\0'; - ptr = (unsigned char *)buffer; - while (*ptr !='\n') {ptr++; len--;}; - ptr++; len--; - while (*ptr == '#') { - while (*ptr !='\n') { - ptr++; - len--; - } - ptr++; - len--; - } + buffer[len] = '\0'; + ptr = (unsigned char *)buffer; + while (*ptr !='\n') {ptr++; len--;}; + ptr++; len--; + while (*ptr == '#') { + while (*ptr !='\n') { + ptr++; + len--; + } + ptr++; + len--; + } - - while (len > 0) { - nb = 0; - if (!strcmp("jisx0208.1983-0", argv[1])) { - nb = JIS0208(ptr); - } else if (!strcmp("jisx0201.1976-0", argv[1])) { - nb = JIS0201(ptr); - } else if (!strcmp("jisx0212.1990-0", argv[1])) { - nb = JIS0212(ptr); - } else if (!strcmp("gb2312.1980-0", argv[1])) { - nb = JIS0212(ptr); - } else if (!strcmp("ksc5601.1987-0", argv[1])) { - nb = JIS0212(ptr); - } else if (!strcmp("big5-0", argv[1])) { - nb = JIS0212(ptr); - } else if (!strncmp("iso8859", argv[1], 7)) { - nb = JIS0201(ptr); - } else if (!strcmp("koi8-1", argv[1])) { - nb = JIS0201(ptr); - } else if (!strcmp("dingbats", argv[1]) || - !strcmp("symbol", argv[1])) - { - nb = ADOBE(ptr); - } else { - len = 0; - } - ptr += nb; - len = len - nb; - } - return 0; + while (len > 0) { + nb = 0; + if (!strcmp("jisx0208.1983-0", argv[1])) { + nb = JIS0208(ptr); + } else if (!strcmp("jisx0201.1976-0", argv[1])) { + nb = JIS0201(ptr); + } else if (!strcmp("jisx0212.1990-0", argv[1])) { + nb = JIS0212(ptr); + } else if (!strcmp("gb2312.1980-0", argv[1])) { + nb = JIS0212(ptr); + } else if (!strcmp("ksc5601.1987-0", argv[1])) { + nb = JIS0212(ptr); + } else if (!strcmp("big5-0", argv[1])) { + nb = JIS0212(ptr); + } else if (!strncmp("iso8859", argv[1], 7)) { + nb = JIS0201(ptr); + } else if (!strcmp("koi8-1", argv[1])) { + nb = JIS0201(ptr); + } else if (!strcmp("dingbats", argv[1]) || + !strcmp("symbol", argv[1])) + { + nb = ADOBE(ptr); + } else { + len = 0; + } + ptr += nb; + len = len - nb; + } + return 0; } /* diff --git a/src/xutf8/utils/create_table.c b/src/xutf8/utils/create_table.c index 5bc702952..cfee793d8 100644 --- a/src/xutf8/utils/create_table.c +++ b/src/xutf8/utils/create_table.c @@ -1,3 +1,28 @@ +/* "$Id: $" + * + * Author: Jean-Marc Lienher ( http://oksid.ch ) + * Copyright 2000-2003 by O'ksi'D. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA. + * + * Please report all bugs and problems on the following page: + * + * http://www.fltk.org/str.php + */ + #include <wchar.h> #include <stdio.h> char buffer[1000000]; @@ -5,85 +30,83 @@ char buffer[1000000]; /*** you can try to modifie this value to have better performences **/ #define MAX_DELTA 0x80 -int main(int argc, char **argv) -{ - char buf[80]; - int len; - unsigned int i = 0; - unsigned char *ptr; - size_t nb; - int nbb = 0; - len = fread(buffer, 1, 1000000, stdin); +int main(int argc, char **argv) { + char buf[80]; + int len; + unsigned int i = 0; + unsigned char *ptr; + size_t nb; + int nbb = 0; + len = fread(buffer, 1, 1000000, stdin); - buffer[len] = '\0'; - ptr = (unsigned char *)buffer; - while (*ptr != '\n') ptr++; - ptr++; - while (*ptr != '\n') { - if (*ptr == ',') nbb++; - ptr++; + buffer[len] = '\0'; + ptr = (unsigned char *)buffer; + while (*ptr != '\n') ptr++; + ptr++; + while (*ptr != '\n') { + if (*ptr == ',') nbb++; + ptr++; + } + ptr = (unsigned char *)buffer; + printf("/* %s */\n", argv[1]); + while (len > 0) { + unsigned int ucs = 0; + char *p = ptr; + char pp[20]; + nb = 0; + pp[0] = '\0'; + while (*p != 'U') p++; + strncat(pp, p, 6); + *pp = '0'; + *(pp+1) = 'x'; + ucs = (unsigned int)strtoul(pp, NULL, 16);; + if (ucs < 1) { + printf("ERROR %d %d\n", len, ucs); + abort(); + } + if (i != ucs - 1 || !i) { + if ((ucs - i) > MAX_DELTA || !i) { + if (i) { + printf("};\n"); + fprintf(stderr, "\t/* end: U+%04X */\n", i); } - ptr = (unsigned char *)buffer; - printf("/* %s */\n", argv[1]); - while (len > 0) { - unsigned int ucs = 0; - char *p = ptr; - char pp[20]; - nb = 0; - pp[0] = '\0'; - while (*p != 'U') p++; - strncat(pp, p, 6); - *pp = '0'; - *(pp+1) = 'x'; - ucs = (unsigned int)strtoul(pp, NULL, 16);; - if (ucs < 1) { - printf("ERROR %d %d\n", len, ucs); - abort(); - } - if (i != ucs - 1 || !i) { - if ((ucs - i) > MAX_DELTA || !i) { - if (i) { - printf("};\n"); - fprintf(stderr, "\t/* end: U+%04X */\n", - i); - } - if (strcmp(argv[1], "spacing")) { - printf("\nstatic const char" - " unicode_to_%s_%db_%04X[]" - " = {\n", argv[1], nbb, ucs); - fprintf(stderr, - "unicode_to_%s_%db_%04X[]; ", - argv[1], nbb, ucs); - } else { - printf("\nstatic const unsigned short" - " ucs_table_%04X[]" - " = {\n", ucs); - fprintf(stderr, - "ucs_table_%04X[]; ", - ucs); - } - } else { - while (i < ucs - 1) { - i++; - if (nbb == 1) { - printf("0x00,\n"); - } else { - printf("0x00, 0x00,\n"); - } - }; - } - } - i = ucs; - while (*ptr != '\n') { - printf("%c", *ptr); - ptr++; - len--; - } - printf("\n"); - ptr++; - len--; + if (strcmp(argv[1], "spacing")) { + printf("\nstatic const char unicode_to_%s_%db_%04X[] = {\n", + argv[1], nbb, ucs); + fprintf(stderr, "unicode_to_%s_%db_%04X[]; ", + argv[1], nbb, ucs); + } else { + printf("\nstatic const unsigned short" + " ucs_table_%04X[]" + " = {\n", ucs); + fprintf(stderr, "ucs_table_%04X[]; ", ucs); } - printf("};\n"); - fprintf(stderr, "\t/* end: U+%04X */\n", i); - return 0; + } else { + while (i < ucs - 1) { + i++; + if (nbb == 1) { + printf("0x00,\n"); + } else { + printf("0x00, 0x00,\n"); + } + }; + } + } + i = ucs; + while (*ptr != '\n') { + printf("%c", *ptr); + ptr++; + len--; + } + printf("\n"); + ptr++; + len--; + } + printf("};\n"); + fprintf(stderr, "\t/* end: U+%04X */\n", i); + return 0; } + +/* + * End of "$Id$". + */ diff --git a/src/xutf8/utils/euc_tw.c b/src/xutf8/utils/euc_tw.c index 54da80b46..523266653 100644 --- a/src/xutf8/utils/euc_tw.c +++ b/src/xutf8/utils/euc_tw.c @@ -32,36 +32,34 @@ char uni[0x10000]; #include "../utf8Utils.c" -int main(int argc, char **argv) -{ +int main(int argc, char **argv) { - iconv_t cd; + iconv_t cd; - int i; - cd = iconv_open("EUC-TW", "UTF16"); - for(i = 0; i < 0x10000; i++) uni[i] = 0; - for(i = 0x00000000; i < 0xFFFFFFFF; i++) { - char buf[4], ob[6]; - char *b = buf; - int ucs = -1; - int l1 = 4, l2 = 6; - char *o = ob ; - buf[0] = i & 0xff; - buf[1] = (i >> 8) & 0xFF; - buf[2] = (i >> 16) & 0xFF; - buf[3] = (i >> 24) & 0xFF; - iconv(cd, NULL, NULL, NULL, NULL); - iconv(cd, &b, &l1, &o, &l2); - if (l2 != 6) { - ucs = (unsigned)ob[0]; - ucs += (unsigned) (ob[1] << 8); - //XConvertUtf8ToUcs((unsigned char*)ob, 6 - l2, &ucs); - printf ("%x --> %X\n", i, ucs & 0xFFFF); - } - - } - iconv_close(cd); - return 0; + int i; + cd = iconv_open("EUC-TW", "UTF16"); + for(i = 0; i < 0x10000; i++) uni[i] = 0; + for(i = 0x00000000; i < 0xFFFFFFFF; i++) { + char buf[4], ob[6]; + char *b = buf; + int ucs = -1; + int l1 = 4, l2 = 6; + char *o = ob ; + buf[0] = i & 0xff; + buf[1] = (i >> 8) & 0xFF; + buf[2] = (i >> 16) & 0xFF; + buf[3] = (i >> 24) & 0xFF; + iconv(cd, NULL, NULL, NULL, NULL); + iconv(cd, &b, &l1, &o, &l2); + if (l2 != 6) { + ucs = (unsigned)ob[0]; + ucs += (unsigned) (ob[1] << 8); + //XConvertUtf8ToUcs((unsigned char*)ob, 6 - l2, &ucs); + printf ("%x --> %X\n", i, ucs & 0xFFFF); + } + } + iconv_close(cd); + return 0; } /* |
