提交 594b16e0 编写于 作者: R Rich Felker

simplify iconv and support more legacy codepages

上级 6b1d3817
"iso88591\0"
"latin1\0"
"\0\200"
"iso88592\0"
"\0\40"
"\0\124\0\211\22\0\40\1\6\0\0\230\101\206\32\177\0\60\110\40\0\130\40\311\22"
"\0\44\21\306\43\0\234\121\306\32\200\120\102\210\40\132\0\0\300\4\0\20\161\1\0"
"\35\0\160\2\0\51\0\0\300\7\41\60\1\5\0\0\130\1\0\0\136\320\1\200\35"
"\0\0\200\6\0\133\0\0\0\5\0\24\201\1\0\36\0\200\2\0\52\0\0\0\10\42\64\21\5\0"
"\0\134\1\0\0\137\324\1\300\35\0\0\220\106\44"
"iso88593\0"
"\0\40"
"\0\324\0\11\0\0\4\60\3\0\0\364\100\106\13\77\0\20\100\40\0\330\0\0\0"
"\0\0\100\3\0\0\370\120\206\13\100\0\20\200\40\0\0\0\100\0\0\154\220\1\0"
"\0\0\0\0\0\0\0\0\0\0\1\0\0\0\0\0\274\0\0\0\53\0\0\0\0\0\310\41\6\0\0\0\0\100\0"
"\0\160\240\1\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\0\0\300\0\0\0\54\0\0\0\0"
"\0\314\61\106\44"
"iso88594\0"
"\0\40"
"\0\124\60\4\27\0\334\140\4\0\0\230\61\102\14\154\0\60\10\0\0\130\40\111\27"
"\0\340\160\304\43\0\234\101\202\14\155\110\101\310\24\21\0\0\0\0\0\0\0\300\16"
"\35\0\160\2\0\45\0\0\100\16\41\70\101\105\20\0\0\0\0\0\0\340\1\0\0\0\270\1\7\0"
"\22\0\0\0\0\0\0\0\0\17\36\0\200\2\0\46\0\0\200\16\42\74\121\205\20\0\0\0\0\0"
"\0\344\1\0\0\0\274\21\107\44"
"iso88595\0"
"\0\40"
"\0\210\63\16\71\345\230\163\16\72\351\250\263\16\73\355\0\340\316\73"
"\360\304\43\317\74\364\324\143\317\75\370\344\243\317\76\374\364\343\317\77"
"\0\5\44\320\100\4\25\144\320\101\10\45\244\320\102\14\65\344\320\103"
"\20\105\44\321\104\24\125\144\321\105\30\145\244\321\106\34\165\344\321\107"
"\40\205\44\322\110\44\225\144\322\111\50\245\244\322\112\54\265\344\322\113"
"\65\302\24\223\114\63\321\124\223\115\67\341\224\223\116\73\15\300\123\117"
"iso88596\0"
"\0\40"
"\0\4\20\100\0\0\4\20\100\0\1\4\20\100\0\163\1\20\100\0\1\4\20\100\0"
"\1\4\20\100\0\1\4\20\0\135\1\4\20\100\135\1\330\165\27\136\171\351\265\27\137"
"\175\371\365\27\140\201\11\66\30\141\205\31\166\30\142\211\51\266\30\143"
"\215\71\366\130\0\1\4\20\100\0\220\105\46\331\144\224\125\146\331\145"
"\230\145\246\331\146\234\165\346\331\147\240\205\46\132\0\1\4\20\100\0"
"\1\4\20\100\0\1\4\20\100\0"
"iso88597\0"
"\0\40"
"\0\220\130\42\0\63\322\10\0\0\0\0\240\11\0\0\0\20\200\210\0\0\0\0\0"
"\233\160\322\11\0\236\174\2\12\0\241\0\40\312\50\244\224\142\312\51"
"\250\244\242\312\52\254\264\342\312\53\260\304\42\313\54\264\324\22\200\55"
"\267\340\222\213\56\273\360\322\213\57\277\0\23\214\60\303\20\123\214\61"
"\307\40\223\214\62\313\60\323\214\63\317\100\23\215\64\323\120\123\215\65"
"\327\140\223\215\66\333\160\323\215\67\337\200\23\116\0"
"iso88598\0"
"\0\40"
"\0\4\0\0\0\0\0\0\0\0\0\0\300\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\360\0\0"
"\0\0\0\100\0\1\4\20\100\0\1\4\20\100\0\1\4\20\100\0\1\4\20\100\0\1\4\20\100\0"
"\1\4\20\100\0\1\4\20\100\0\1\4\20\300\210\123\121\125\225\125"
"\127\141\225\225\126\133\161\325\225\127\137\201\25\226\130"
"\143\221\125\226\131\147\241\225\226\132\153\261\325\126\0\1\170\370\141\0"
"iso88599\0"
"\0\120"
"\55\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\364\100\6\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\56\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\370\120\6\0"
"iso885910\0"
"\0\40"
"\0\124\60\102\14\71\334\20\4\0\106\204\140\6\33\203\0\0\207\24"
"\0\130\100\202\14\72\340\40\4\0\107\210\160\106\33\204\210\30\307\24"
"\21\0\0\0\0\0\0\0\300\16\35\0\160\2\0\45\0\0\0\0\0\70\101\5\0\0\0\0\200\33"
"\0\340\1\0\0\0\0\0\0\0\22\0\0\0\0\0\0\0\0\17\36\0\200\2\0\46\0\0\0\0"
"\0\74\121\5\0\0\0\0\300\33\0\344\1\0\0\0\0\0\300\20"
"iso885911\0"
"tis620\0"
"\0\40"
"\0\274\6\133\154\262\315\106\133\155\266\335\206\133\156\272\355\306\133\157"
"\276\375\6\134\160\302\15\107\134\161\306\35\207\134\162\312\55\307\134\163"
"\316\75\7\135\164\322\115\107\135\165\326\135\207\135\166\332\155\307\135\167"
"\336\175\7\136\170\342\215\107\136\171\346\235\207\136\0\1\4\20\100\172"
"\352\255\307\136\173\356\275\7\137\174\362\315\107\137\175\366\335\207\137\176"
"\372\355\307\137\177\376\375\7\140\200\2\16\110\140\201\1\4\20\100\0"
"iso885913\0"
"\0\40"
"\0\240\10\0\0\0\244\10\0\0\15\0\300\5\0\0\0\0\300\2\0\0\0\0\0\47\2\0\0\0"
"\20\0\320\5\0\0\0\0\200\3\25\354\20\301\5\0\0\160\302\10\35\0\360\107\11"
"\61\4\221\203\21\146\60\341\4\0\124\0\0\0\0\170\50\1\6\34\0\4\62\10\0"
"\26\360\40\1\6\0\0\200\2\11\36\0\0\210\11\62\10\241\303\21\147\64\361\4\0"
"\125\0\0\0\0\171\54\21\106\34\0\10\102\110\211"
"iso885914\0"
"\0\40"
"\0\30\170\40\0\33\160\200\40\0\24\2\140\141\202\32\2\0\200\37\12\56\370\2\14"
"\14\66\10\200\203\25\76\170\41\204\33\142\230\141\204\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\172\0\0\0\0\0\0\0\200\204\0\0\0\0\0\0\0\300\7\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\173\0\0\0\0\0\0\0\300\204\0\0\0\0\0\0\0\320\7\0"
"iso885915\0"
"latin9\0"
"\0\44"
"\63\2\140\6\0\147\0\0\0\0\0\0\0\0\0\0\0\0\0\0\203\0\0\0\0\204\0\0\0\0"
"\130\144\341\7\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"iso885916\0"
"\0\40"
"\0\124\140\201\22\63\246\150\6\0\147\0\240\10\0\177\0\0\110\40\0\0\320\301\22"
"\203\240\10\0\0\204\170\260\10\0\130\144\341\207\40\0\0\0\300\4\0\134\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\41\60\1\0\0\0\130\1\0\30\166\0\0\0\0\0\234\300\10\0"
"\0\0\0\0\5\0\140\0\0\0\0\0\0\0\0\0\0\0\0\0\42\64\1\0\0\0\134\1\100\30"
"\167\0\0\0\0\0\240\320\10\0"
"cp1250\0"
"windows1250\0"
"\0\0"
"\63\6\140\142\0\51\266\250\342\212\1\270\150\306\213\140\250\61\310\37"
"\1\220\130\342\211\50\262\10\142\210\1\330\170\6\214\141\254\101\10\40"
"\0\74\2\211\22\0\124\0\0\0\0\0\100\6\0\0\0\0\100\40\0\0\40\311\22\0\0\0\0\0"
"\0\130\120\6\0\110\120\222\204\40\132\0\0\300\4\0\20\161\1\0\35\0\160\2\0"
"\51\0\0\300\7\41\60\1\5\0\0\130\1\0\0\136\320\1\200\35\0\0\200\6\0\133\0\0\0\5"
"\0\24\201\1\0\36\0\200\2\0\52\0\0\0\10\42\64\21\5\0\0\134\1\0\0"
"\137\324\1\300\35\0\0\220\106\44"
"cp1251\0"
"windows1251\0"
"\0\0"
"\343\220\143\242\114\51\266\250\342\212\63\272\250\316\213\353\264\303\316\73"
"\61\221\130\342\211\50\262\10\142\210\1\330\210\23\214\71\355\244\123\117"
"\0\270\303\123\72\0\370\4\0\0\342\0\120\16\0\0\0\0\0\72\0\0\160\116\115"
"\77\1\0\0\0\60\325\70\23\0\67\231\103\223\115\360\304\43\317\74"
"\364\324\143\317\75\370\344\243\317\76\374\364\343\317\77\0\5\44\320\100"
"\4\25\144\320\101\10\45\244\320\102\14\65\344\320\103\20\105\44\321\104"
"\24\125\144\321\105\30\145\244\321\106\34\165\344\321\107\40\205\44\322\110"
"\44\225\144\322\111\50\245\244\322\112\54\265\344\322\113"
"cp1252\0"
"windows1252\0"
"\0\0"
"\63\6\140\142\41\51\266\250\342\212\216\270\150\306\213\130\4\60\110\0"
"\1\220\130\342\211\50\262\10\142\210\223\330\170\6\214\131\4\100\210\37"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"cp1253\0"
"windows1253\0"
"\0\0"
"\63\6\140\142\41\51\266\250\342\212\1\270\30\300\213\1\4\20\100\0"
"\1\220\130\342\211\50\262\10\142\210\1\330\30\0\214\1\4\20\100\0"
"\0\160\322\11\0\0\0\0\0\0\0\0\20\0\0\0\0\0\200\210\0\0\0\0\0\233\0\0\0\0"
"\236\174\2\12\0\241\0\40\312\50\244\224\142\312\51\250\244\242\312\52"
"\254\264\342\312\53\260\304\42\313\54\264\324\22\200\55\267\340\222\213\56"
"\273\360\322\213\57\277\0\23\214\60\303\20\123\214\61\307\40\223\214\62"
"\313\60\323\214\63\317\100\23\215\64\323\120\123\215\65\327\140\223\215\66"
"\333\160\323\215\67\337\200\23\116\0"
"cp1254\0"
"windows1254\0"
"\0\0"
"\63\6\140\142\41\51\266\250\342\212\216\270\150\306\213\130\4\20\100\0"
"\1\220\130\342\211\50\262\10\142\210\223\330\170\6\214\131\4\20\200\37"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\55\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\364\100\6\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\56\0\0\0\0"
"\0\0\0\0\0\0\0\0\0\0\0\370\120\6\0"
"cp1255\0"
"windows1255\0"
"\0\0"
"\63\6\140\142\41\51\266\250\342\212\216\270\30\300\213\1\4\20\100\0"
"\1\220\130\342\211\50\262\10\142\210\223\330\30\0\214\1\4\20\100\0\0\0\0\0\0"
"\61\2\0\0\0\0\0\300\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\360\0\0\0\0\0\0\0"
"\100\5\45\324\120\104\25\145\324\121\110\45\25\200\122\113\61\325\224\123"
"\117\101\25\225\124\156\275\5\127\134\162\5\20\100\0\1\4\20\100\0"
"\123\121\125\225\125\127\141\225\225\126\133\161\325\225\127"
"\137\201\25\226\130\143\221\125\226\131\147\241\225\226\132\153\261\325\126\0"
"\1\170\370\141\0"
"cp1256\0"
"windows1256\0"
"\0\0"
"\63\222\146\142\41\51\266\250\342\212\216\270\70\332\213\130\224\206\232\151"
"\252\221\130\342\211\50\262\10\142\210\251\331\170\32\214\131\160\330\341\152"
"\0\314\5\0\0\0\0\0\0\0\0\0\300\32\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\100\27\0"
"\0\0\0\100\135\255\331\165\27\136\171\351\265\27\137\175\371\365\27\140"
"\201\11\66\30\141\205\31\166\30\142\211\51\266\30\0\214\65\346\330\143"
"\220\105\46\331\144\0\120\6\100\145\226\135\206\31\0\0\0\0\0\0\231\151\6\0\0"
"\233\161\326\231\147\0\174\6\32\0\241\1\40\32\0\0\170\370\241\153"
"cp1257\0"
"windows1257\0"
"\0\0"
"\63\6\140\142\0\51\266\250\342\212\1\270\30\300\213\1\20\360\210\2"
"\1\220\130\342\211\50\262\10\142\210\1\330\30\0\214\1\30\40\111\0\0\4\0\0\0"
"\0\4\0\0\0\15\0\300\5\0\0\0\0\300\2\0\0\0\0\0\0\0\0\0\0\20\0\320\5\0"
"\0\0\0\200\3\25\354\20\301\5\0\0\160\302\10\35\0\360\107\11\61\4\221\203\21"
"\146\60\341\4\0\124\0\0\0\0\170\50\1\6\34\0\4\62\10\0\26\360\40\1\6"
"\0\0\200\2\11\36\0\0\210\11\62\10\241\303\21\147\64\361\4\0\125\0\0\0\0"
"\171\54\21\106\34\0\10\102\110\44"
"cp1258\0"
"windows1258\0"
"\0\0"
"\63\6\140\142\41\51\266\250\342\212\216\270\30\300\213\130\4\20\100\0"
"\1\220\130\342\211\50\262\10\142\210\223\330\30\0\214\131\4\20\200\37"
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
"\0\0\0\0\0\0\0\0\300\4\0\0\0\0\0\0\0\0\0\0\225\0\0\0\0\41\0\200\11\0"
"\0\30\2\0\0\0\0\0\0\0\0\40\162\11\0\0\0\0\0\5\0\0\0\0\0\0\0\0\0\0\226\0\0\0\0"
"\42\0\220\11\0\0\34\2\0\0\0\0\0\0\0\0\44\42\43\0"
"koi8r\0"
"\0\0"
"\76\376\10\144\220\102\16\111\144\221\106\36\211\244\231\147\242\231\246\232"
"\153\262\331\46\217\156\336\210\143\216\72\356\50\100\217\7\40\220\300\3"
"\111\52\271\44\114\114\66\351\344\223\120\106\51\345\224\124\126\151\345\225"
"\130\146\251\245\70\133\162\331\245\227\137\202\31\246\230\143\222\131\146\1"
"\56\101\24\221\111\24\125\104\322\104\45\141\224\221\106\33\161\324\221\107"
"\37\275\4\122\110\42\215\144\221\104\54\255\164\21\112\55\245\164\222\112"
"\16\301\23\217\101\364\324\103\320\74\5\341\223\217\76\373\360\323\217\77"
"\377\74\4\120\100\2\15\144\217\74\14\55\164\17\102\15\45\164\220\102"
"koi8u\0"
"\0\0"
"\76\376\10\144\220\102\16\111\144\221\106\36\211\244\231\147\242\231\246\232"
"\153\262\331\46\217\156\336\210\143\216\72\356\50\100\217\7\40\220\300\3"
"\111\52\271\44\114\63\65\131\223\115\120\106\51\345\224\124\376\144\345\225"
"\130\146\251\245\70\345\160\171\16\72\137\202\31\246\230\143\372\124\146\1"
"\56\101\24\221\111\24\125\104\322\104\45\141\224\221\106\33\161\324\221\107"
"\37\275\4\122\110\42\215\144\221\104\54\255\164\21\112\55\245\164\222\112"
"\16\301\23\217\101\364\324\103\320\74\5\341\223\217\76\373\360\323\217\77"
"\377\74\4\120\100\2\15\144\217\74\14\55\164\17\102\15\45\164\220\102"
...@@ -6,25 +6,15 @@ ...@@ -6,25 +6,15 @@
#include <limits.h> #include <limits.h>
#include <stdint.h> #include <stdint.h>
#define UTF_32BE 000 #define UTF_32BE 0300
#define UTF_16LE 001 #define UTF_16LE 0301
#define UTF_16BE 002 #define UTF_16BE 0302
#define UTF_32LE 003 #define UTF_32LE 0303
#define UCS2BE 004 #define UCS2BE 0304
#define UCS2LE 005 #define UCS2LE 0305
#define WCHAR_T 007 #define US_ASCII 0306
#define WCHAR_T 0307
#define US_ASCII 021 #define UTF_8 0310
#define UTF_8 022
#define LATIN_9 024
#define TIS_620 025
#define JIS_0201 026
#define EUC 031
#define EUC_TW 032
#define SHIFT_JIS 033
#define BIG5 034
#define GBK 035
/* FIXME: these are not implemented yet /* FIXME: these are not implemented yet
* EUC: A1-FE A1-FE * EUC: A1-FE A1-FE
...@@ -34,254 +24,25 @@ ...@@ -34,254 +24,25 @@
/* Definitions of charmaps. Each charmap consists of: /* Definitions of charmaps. Each charmap consists of:
* 1. Empty-string-terminated list of null-terminated aliases. * 1. Empty-string-terminated list of null-terminated aliases.
* 2. Special type code or bits per character. * 2. Special type code or number of elided entries.
* 3. Number of elided entries (128 for specials). * 3. Character table (size determined by field 2). */
* 4. Character table (size determined by fields 2 and 3). */
static const unsigned char charmaps[] = static const unsigned char charmaps[] =
"utf8\0\0\022\x80" "utf8\0\0\310"
"wchart\0\0\007\x80" "wchart\0\0\307"
"ucs2\0ucs2be\0\0\304"
"ucs2\0ucs2be\0\0\004\x80" "ucs2le\0\0\305"
"ucs2le\0\0\005\x80" "utf16\0utf16be\0\0\302"
"utf16le\0\0\301"
"utf16\0utf16be\0\0\002\x80" "ucs4\0ucs4be\0utf32\0utf32be\0\0\300"
"utf16le\0\0\001\x80" "ucs4le\0utf32le\0\0\303"
"ascii\0usascii\0iso646\0iso646us\0\0\306"
"ucs4\0ucs4be\0utf32\0utf32be\0\0\000\x80" #include "codepages.h"
"ucs4le\0utf32le\0\0\003\x80"
"ascii\0iso646\0usascii\0\0\021\x80"
"latin1\0iso88591\0\0\x09\x80"
"latin9\0iso885915\0\0\024\x80"
"tis620\0iso885911\0\0\025\x80"
"jis0201\0\0\026\x80"
"iso88592\0\0\x0a\x21"
"\x04\x61\x1b\x14\x29\x3d\x69\x75\x0a\x2a"
"\x60\x79\x45\x56\x5e\xad\xf4\xb5\x17\x2c"
"\x05\x6d\x2b\x14\x2d\x3e\x6d\x75\x2c\x2e"
"\x61\x7d\x55\x96\x5e\xdd\xfa\xc5\x17\x55"
"\xc1\x08\x23\x10\x31\x39\x19\x74\x0c\x43"
"\xc9\x60\xb4\x8c\x46\xcd\x38\xe3\x10\x44"
"\x43\x1d\x35\x0d\x35\x50\x59\x73\x0d\x56"
"\x6e\x69\x03\x17\x37\xdd\x88\xf5\x4d\x55"
"\xe1\x88\x33\x10\x39\x3a\x1d\x74\x4e\x43"
"\xe9\x64\xb4\xce\x46\xed\xb8\xf3\x50\x44"
"\x44\x21\x35\x0f\x3d\x51\xd9\x73\x4f\x56"
"\x6f\xe9\x13\x17\x3f\xfd\x8c\x95\x2d"
"iso88593\0\0\x0a\x21"
"\x26\x61\x3b\x0a\x29\x00\x90\x74\x0a\x2a"
"\x30\x79\xe5\x11\x4d\xad\x00\xb0\x17\x2c"
"\x27\xc9\x32\x0b\x2d\xb5\x94\x74\x0b\x2e"
"\x31\x7d\xf5\x51\x4d\xbd\x00\xc0\x17\x30"
"\xc1\x08\x03\x00\x31\x0a\x21\x74\x0c\x32"
"\xc9\x28\xb3\x0c\x33\xcd\x38\xf3\x0c\x00"
"\xd1\x48\x33\x0d\x35\x20\x59\x73\x0d\x47"
"\xd9\x68\xb3\x0d\x37\x6c\x71\xf5\x0d\x38"
"\xe1\x88\x03\x00\x39\x0b\x25\x74\x0e\x3a"
"\xe9\xa8\xb3\x0e\x3b\xed\xb8\xf3\x0e\x00"
"\xf1\xc8\x33\x0f\x3d\x21\xd9\x73\x4f\x47"
"\xf9\xe8\xb3\x0f\x3f\x6d\x75\x95\x2d"
"iso88594\0\0\x0a\x21"
"\x04\xe1\x64\x15\x29\x28\xed\x74\x0a\x2a"
"\x60\x49\x24\x92\x59\xad\xf4\xf5\x0a\x2c"
"\x05\x6d\x7b\x15\x2d\x29\xf1\x74\x2c\x2e"
"\x61\x4d\x34\xd2\x59\x4a\xf9\xb5\x14\x40"
"\xc1\x08\x33\x0c\x31\xc5\x18\xe3\x12\x43"
"\xc9\x60\xb4\x8c\x45\xcd\x38\xa3\x12\x44"
"\x45\x31\x65\x13\x35\xd5\x58\x73\x0d\x36"
"\x72\x69\xb3\x0d\x37\x68\xa9\xf5\x4d\x40"
"\xe1\x88\x33\x0e\x39\xe5\x98\xf3\x52\x43"
"\xe9\x64\xb4\xce\x45\xed\xb8\xb3\x52\x44"
"\x46\x35\x75\x13\x3d\xf5\xd8\x73\x0f\x3e"
"\x73\xe9\xb3\x0f\x3f\x69\xad\x95\x2d"
"iso88595\0\0\x0e\x21"
"\x01\x84\x00\x31\x40\x10\x10\x05\x84\x01"
"\x71\x40\x20\x10\x09\x84\x02\xb1\x40\x30"
"\x10\xad\x80\x03\xf1\x40\x40\x10\x11\x84"
"\x04\x31\x41\x50\x10\x15\x84\x05\x71\x41"
"\x60\x10\x19\x84\x06\xb1\x41\x70\x10\x1d"
"\x84\x07\xf1\x41\x80\x10\x21\x84\x08\x31"
"\x42\x90\x10\x25\x84\x09\x71\x42\xa0\x10"
"\x29\x84\x0a\xb1\x42\xb0\x10\x2d\x84\x0b"
"\xf1\x42\xc0\x10\x31\x84\x0c\x31\x43\xd0"
"\x10\x35\x84\x0d\x71\x43\xe0\x10\x39\x84"
"\x0e\xb1\x43\xf0\x10\x3d\x84\x0f\xf1\x43"
"\x00\x11\x41\x84\x10\x31\x44\x10\x11\x45"
"\x84\x11\x71\x44\x20\x11\x49\x84\x12\xb1"
"\x44\x30\x11\x4d\x84\x13\xf1\x44\x58\x84"
"\x51\x84\x14\x31\x45\x50\x11\x55\x84\x15"
"\x71\x45\x60\x11\x59\x84\x16\xb1\x45\x70"
"\x11\xa7\x80\x17\xf1\x45\x00"
"iso88596\0\0\x0b\x21"
"\x00\x00\x00\x00\x48\x01\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x18\xdc\x0a\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\xc0\x86\x01\x00\x00"
"\x00\x7c\x18\x00\x21\x16\xf1\x88\x49\x5c"
"\x62\x13\x9f\x18\xc5\x29\x56\xf1\x8a\x59"
"\xdc\x62\x17\xbf\x18\xc6\x31\x96\xf1\x8c"
"\x69\x5c\x63\x1b\xdf\x18\xc7\x39\xd6\x31"
"\x00\x00\x00\x00\x00\x00\x00\xc8\x41\x16"
"\xf2\x90\x89\x5c\x64\x23\x1f\x19\xc9\x49"
"\x56\xf2\x92\x99\xdc\x64\x27\x3f\x19\xca"
"\x51\x96\x32\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00"
"iso88597\0\0\x0e\x21"
"\x18\x60\x06\x38\x0a\xb0\x82\xaf\xa0\x29"
"\x70\x0a\xa0\x02\xa9\x80\xde\xb0\x0a\xb0"
"\x02\xad\x00\x00\x50\x01\xc2\x02\xb1\x80"
"\x2c\x30\x0b\x10\x0e\x85\x83\xe1\x70\x0b"
"\x20\x0e\x89\x83\xe2\xb0\x0b\x30\x0e\xbd"
"\x80\xe3\xf0\x38\x40\x0e\x91\x83\xe4\x30"
"\x39\x50\x0e\x95\x83\xe5\x70\x39\x60\x0e"
"\x99\x83\xe6\xb0\x39\x70\x0e\x9d\x83\xe7"
"\xf0\x39\x80\x0e\xa1\x03\x00\x30\x3a\x90"
"\x0e\xa5\x83\xe9\x70\x3a\xa0\x0e\xa9\x83"
"\xea\xb0\x3a\xb0\x0e\xad\x83\xeb\xf0\x3a"
"\xc0\x0e\xb1\x83\xec\x30\x3b\xd0\x0e\xb5"
"\x83\xed\x70\x3b\xe0\x0e\xb9\x83\xee\xb0"
"\x3b\xf0\x0e\xbd\x83\xef\xf0\x3b\x00\x0f"
"\xc1\x83\xf0\x30\x3c\x10\x0f\xc5\x83\xf1"
"\x70\x3c\x20\x0f\xc9\x83\xf2\xb0\x3c\x30"
"\x0f\xcd\x83\xf3\x00\x00\x00"
"iso88598\0\0\x0e\x21"
"\x00\x80\x28\x30\x0a\x90\x02\xa5\x80\x29"
"\x70\x0a\xa0\x02\xa9\xc0\x35\xb0\x0a\xb0"
"\x02\xad\x80\x2b\xf0\x0a\xc0\x02\xb1\x80"
"\x2c\x30\x0b\xd0\x02\xb5\x80\x2d\x70\x0b"
"\xe0\x02\xb9\xc0\x3d\xb0\x0b\xf0\x02\xbd"
"\x80\x2f\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x70\x01"
"\x42\x17\xd1\x85\x74\x31\x5d\x50\x17\xd5"
"\x85\x75\x71\x5d\x60\x17\xd9\x85\x76\xb1"
"\x5d\x70\x17\xdd\x85\x77\xf1\x5d\x80\x17"
"\xe1\x85\x78\x31\x5e\x90\x17\xe5\x85\x79"
"\x71\x5e\xa0\x17\xe9\x85\x7a\x01\x00\x00"
"\x00\x0e\xe0\x03\x08\x00\x00"
"iso88599\0\0\x09\x50"
"\x1e\xa3\x49\x9b\x46\xad\x9a\xb5\x6b\xd8"
"\xb2\x69\xdb\xc6\x0d\xa6\xd7\x6f\xe0\xc2"
"\x89\x1b\x47\xae\x9c\xb9\x73\xe8\xd2\xa9"
"\x5b\xc7\xae\x9d\xbb\x77\x1f\xe3\xc9\x9b"
"\x47\xaf\x9e\xbd\x7b\xf8\xf2\xe9\xdb\xc7"
"\x2f\xe6\xd7\x7f"
"iso885910\0\0\x0e\x21"
"\x04\x81\x44\x20\x12\xa8\x04\x28\x81\x4d"
"\x70\x0a\xec\x04\x10\x01\x58\x60\x16\xf4"
"\x05\xad\x80\x5a\xa0\x14\xc0\x02\x05\xc1"
"\x44\x30\x12\xac\x04\x29\xc1\x4d\x70\x0b"
"\xf0\x04\x11\x41\x58\x70\x16\xf8\x05\x15"
"\xe0\x5a\xb0\x14\x00\x04\xc1\x80\x30\x30"
"\x0c\x10\x03\xc5\x80\x31\xe0\x12\x30\x04"
"\xc9\x00\x46\xb0\x0c\x58\x04\xcd\x80\x33"
"\xf0\x0c\x40\x03\x45\x01\x53\x30\x0d\x50"
"\x03\xd5\x80\x35\x80\x16\x60\x03\x72\x81"
"\x36\xb0\x0d\x70\x03\xdd\x80\x37\xf0\x0d"
"\x04\x04\xe1\x80\x38\x30\x0e\x90\x03\xe5"
"\x80\x39\xf0\x12\x34\x04\xe9\x40\x46\xb0"
"\x0e\x5c\x04\xed\x80\x3b\xf0\x0e\xc0\x03"
"\x46\x41\x53\x30\x0f\xd0\x03\xf5\x80\x3d"
"\x90\x16\xe0\x03\x73\x81\x3e\xb0\x0f\xf0"
"\x03\xfd\x80\x3f\x80\x13\x00"
"iso885913\0\0\x0e\x21"
"\x1d\xa0\x28\x30\x0a\x90\x02\x1e\xa0\x29"
"\x70\x0a\x60\x03\xa9\x80\x55\xb0\x0a\xb0"
"\x02\xad\x80\x2b\x60\x0c\xc0\x02\xb1\x80"
"\x2c\x30\x0b\x70\x80\xb5\x80\x2d\x70\x0b"
"\xe0\x03\xb9\xc0\x55\xb0\x0b\xf0\x02\xbd"
"\x80\x2f\x60\x0e\x10\x04\x2e\x01\x40\x60"
"\x10\x10\x03\xc5\x00\x46\x20\x11\x30\x04"
"\xc9\x40\x5e\x60\x11\x88\x04\x36\x81\x4a"
"\xb0\x13\x80\x05\x43\x41\x51\x30\x0d\x30"
"\x05\xd5\x80\x35\x70\x0d\xc8\x05\x41\x81"
"\x56\xa0\x16\x70\x03\x7b\x41\x5f\xf0\x0d"
"\x14\x04\x2f\x41\x40\x70\x10\x90\x03\xe5"
"\x40\x46\x30\x11\x34\x04\xe9\x80\x5e\x70"
"\x11\x8c\x04\x37\xc1\x4a\xc0\x13\x84\x05"
"\x44\x81\x51\x30\x0f\x34\x05\xf5\x80\x3d"
"\x70\x0f\xcc\x05\x42\xc1\x56\xb0\x16\xf0"
"\x03\x7c\x81\x5f\x90\x01\x02"
"iso885914\0\0\x0d\x21"
"\x02\x7e\xc0\x8f\x02\x85\xb0\x10\x14\xfc"
"\x29\x00\xf4\xa9\x40\xd0\x2f\x78\x79\xdf"
"\x0a\x5c\x01\x5e\xf0\xf0\x1f\x1e\x24\x84"
"\x04\x20\x1f\xe4\x6d\x81\x95\x0f\xf4\x57"
"\x7e\xd0\x83\xf9\x79\x4f\xe8\x0b\x7d\x98"
"\x07\x06\xc1\x40\x18\x0c\x03\x62\x50\x0c"
"\x8c\xc1\x31\x40\x06\xc9\x40\x19\x2c\x03"
"\x66\xd0\x0c\x9c\xc1\x33\xa0\x0b\xd1\x40"
"\x1a\x4c\x03\x6a\x50\x0d\xac\x81\x9a\xc7"
"\x06\xd9\x40\x1b\x6c\x03\x6e\xd0\x0d\xec"
"\xc2\x37\x00\x07\xe1\x40\x1c\x8c\x03\x72"
"\x50\x0e\xcc\xc1\x39\x40\x07\xe9\x40\x1d"
"\xac\x03\x76\xd0\x0e\xdc\xc1\x3b\xa8\x0b"
"\xf1\x40\x1e\xcc\x03\x7a\x50\x0f\xec\xc1"
"\x9a\xc7\x07\xf9\x40\x1f\xec\x03\x7e\xd0"
"\x0f\xee\xc2\x3f\x00"
"iso885916\0\0\x0e\x21"
"\x04\x41\x41\x10\x14\xb0\x82\x1e\x20\x58"
"\x70\x0a\x84\x05\xa9\x00\x86\xb0\x0a\xe4"
"\x05\xad\x80\x5e\xb0\x17\xc0\x02\xb1\x00"
"\x43\x20\x14\xf4\x05\x1d\xa0\x2d\x70\x0b"
"\xf8\x05\x0d\x41\x86\xb0\x0b\x48\x05\x53"
"\x01\x5e\xc0\x17\x00\x03\xc1\x80\x30\x20"
"\x10\x10\x03\x06\x81\x31\x70\x0c\x20\x03"
"\xc9\x80\x32\xb0\x0c\x30\x03\xcd\x80\x33"
"\xf0\x0c\x40\x04\x43\x81\x34\x30\x0d\x50"
"\x03\x50\x81\x35\xa0\x15\xc0\x05\xd9\x80"
"\x36\xb0\x0d\x70\x03\x18\x81\x86\xf0\x0d"
"\x80\x03\xe1\x80\x38\x30\x10\x90\x03\x07"
"\x81\x39\x70\x0e\xa0\x03\xe9\x80\x3a\xb0"
"\x0e\xb0\x03\xed\x80\x3b\xf0\x0e\x44\x04"
"\x44\x81\x3c\x30\x0f\xd0\x03\x51\x81\x3d"
"\xb0\x15\xc4\x05\xf9\x80\x3e\xb0\x0f\xf0"
"\x03\x19\xc1\x86\xf0\x0f\x00"
"windows1252\0\0\x0e\x00"
"\xac\x20\x00\xa0\x01\x4a\x06\x1e\xa0\x09"
"\x08\x02\x86\x80\xc6\x02\x0c\x08\x16\xe4"
"\x80\x52\x01\x00\xd0\x17\x00\x00\x00\x00"
"\x06\x98\x01\x72\x80\x1d\xa0\x08\x38\x01"
"\x52\x80\xdc\x82\x48\x18\x16\xe8\x80\x53"
"\x01\x00\xe0\x17\xe0\x05\xa0\x40\x28\x20"
"\x0a\x8c\x02\xa4\x40\x29\x60\x0a\x9c\x02"
"\xa8\x40\x2a\xa0\x0a\xac\x02\xac\x40\x2b"
"\xe0\x0a\xbc\x02\xb0\x40\x2c\x20\x0b\xcc"
"\x02\xb4\x40\x2d\x60\x0b\xdc\x02\xb8\x40"
"\x2e\xa0\x0b\xec\x02\xbc\x40\x2f\xe0\x0b"
"\xfc\x02\xc0\x40\x30\x20\x0c\x0c\x03\xc4"
"\x40\x31\x60\x0c\x1c\x03\xc8\x40\x32\xa0"
"\x0c\x2c\x03\xcc\x40\x33\xe0\x0c\x3c\x03"
"\xd0\x40\x34\x20\x0d\x4c\x03\xd4\x40\x35"
"\x60\x0d\x5c\x03\xd8\x40\x36\xa0\x0d\x6c"
"\x03\xdc\x40\x37\xe0\x0d\x7c\x03\xe0\x40"
"\x38\x20\x0e\x8c\x03\xe4\x40\x39\x60\x0e"
"\x9c\x03\xe8\x40\x3a\xa0\x0e\xac\x03\xec"
"\x40\x3b\xe0\x0e\xbc\x03\xf0\x40\x3c\x20"
"\x0f\xcc\x03\xf4\x40\x3d\x60\x0f\xdc\x03"
"\xf8\x40\x3e\xa0\x0f\xec\x03\xfc\x40\x3f"
"\xe0\x0f\xfc\x03"
; ;
static const unsigned short legacy_chars[] = {
#include "legacychars.h"
};
static int fuzzycmp(const unsigned char *a, const unsigned char *b) static int fuzzycmp(const unsigned char *a, const unsigned char *b)
{ {
...@@ -301,7 +62,10 @@ static size_t find_charmap(const void *name) ...@@ -301,7 +62,10 @@ static size_t find_charmap(const void *name)
return s+1-charmaps; return s+1-charmaps;
} }
s += strlen((void *)s)+1; s += strlen((void *)s)+1;
if (!*s) s += ((128-s[2])*s[1]+7)/8 + 3; if (!*s) {
if (s[1] > 0200) s+=2;
else s+=2+(128U-s[1])/4*5;
}
} }
return -1; return -1;
} }
...@@ -338,36 +102,19 @@ static void put_16(unsigned char *s, unsigned c, int e) ...@@ -338,36 +102,19 @@ static void put_16(unsigned char *s, unsigned c, int e)
static unsigned get_32(const unsigned char *s, int e) static unsigned get_32(const unsigned char *s, int e)
{ {
e &= 3;
return s[e]+0U<<24 | s[e^1]<<16 | s[e^2]<<8 | s[e^3]; return s[e]+0U<<24 | s[e^1]<<16 | s[e^2]<<8 | s[e^3];
} }
static void put_32(unsigned char *s, unsigned c, int e) static void put_32(unsigned char *s, unsigned c, int e)
{ {
e &= 3;
s[e^0] = c>>24; s[e^0] = c>>24;
s[e^1] = c>>16; s[e^1] = c>>16;
s[e^2] = c>>8; s[e^2] = c>>8;
s[e^3] = c; s[e^3] = c;
} }
#define GET_MAPPING(m, i, n) ( (1<<(n))-1 & ( \
(m)[(i)*(n)/8] >> ((n)%8*(i)%8) | \
(m)[(i)*(n)/8+1] << 8-((n)%8*(i)%8) | \
(m)[(i)*(n)/8+2] << 16-((n)%8*(i)%8) ) )
static unsigned get_mapping(const unsigned char *m, unsigned c, unsigned n)
{
switch (n) {
default:
case 9: return m[c*9/8]>>c%8 | m[c*9/8+1]<<8-c%8 & (1<<n)-1;
case 10: return m[c*10/8]>>2*c%8 | m[c*10/8+1]<<8-2*c%8 & (1<<n)-1;
case 11: return GET_MAPPING(m, c, 11);
case 13: return GET_MAPPING(m, c, 13);
case 14: return GET_MAPPING(m, c, 14);
}
}
/* Adapt as needed */ /* Adapt as needed */
#define mbrtowc_utf8 mbrtowc #define mbrtowc_utf8 mbrtowc
#define wctomb_utf8 wctomb #define wctomb_utf8 wctomb
...@@ -379,24 +126,23 @@ size_t iconv(iconv_t cd0, char **in, size_t *inb, char **out, size_t *outb) ...@@ -379,24 +126,23 @@ size_t iconv(iconv_t cd0, char **in, size_t *inb, char **out, size_t *outb)
unsigned long cd = (unsigned long)cd0; unsigned long cd = (unsigned long)cd0;
unsigned to = cd & 0xffff; unsigned to = cd & 0xffff;
unsigned from = cd >> 16; unsigned from = cd >> 16;
const unsigned char *map = charmaps+from+2; const unsigned char *map = charmaps+from+1;
const unsigned char *tomap = charmaps+to+2; const unsigned char *tomap = charmaps+to+1;
mbstate_t st = {0}; mbstate_t st = {0};
wchar_t wc; wchar_t wc;
unsigned c, d; unsigned c, d;
size_t k, l; size_t k, l;
int err; int err;
unsigned elide = map[-1] + 128; unsigned char type = map[-1];
unsigned toelide = tomap[-1] + 128; unsigned char totype = tomap[-1];
unsigned char type = map[-2];
unsigned char totype = tomap[-2];
if (!in || !*in || !*inb) return 0; if (!in || !*in || !*inb) return 0;
for (; *inb; *in+=l, *inb-=l) { for (; *inb; *in+=l, *inb-=l) {
c = *(unsigned char *)*in; c = *(unsigned char *)*in;
l = 1; l = 1;
if (type < 8 || c >= 0x80) switch (type) {
if (c >= 128) switch (type) {
case UTF_8: case UTF_8:
l = mbrtowc_utf8(&wc, *in, *inb, &st); l = mbrtowc_utf8(&wc, *in, *inb, &st);
if (!l) l++; if (!l) l++;
...@@ -404,33 +150,8 @@ size_t iconv(iconv_t cd0, char **in, size_t *inb, char **out, size_t *outb) ...@@ -404,33 +150,8 @@ size_t iconv(iconv_t cd0, char **in, size_t *inb, char **out, size_t *outb)
else if (l == (size_t)-2) goto starved; else if (l == (size_t)-2) goto starved;
c = wc; c = wc;
break; break;
case LATIN_9:
if ((unsigned)c - 0xa4 <= 0xbe - 0xa4) {
static const unsigned char map[] = {
0, 0x60, 0, 0x61, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0x7d, 0, 0, 0, 0x7e, 0, 0, 0,
0x52, 0x53, 0x78
};
if (c == 0xa4) c = 0x20ac;
else if (map[c-0xa5]) c = 0x100 | map[c-0xa5];
}
break;
case TIS_620:
if (c >= 0xa1) c += 0x0e01-0xa1;
break;
case JIS_0201:
if (c >= 0xa1)
if (c <= 0xdf) c += 0xff61-0xa1;
else goto ilseq;
break;
case 9: case 10: case 11: case 13: case 14:
if (c < elide) break;
c = get_mapping(map, c-elide, type);
if (!c) {
case US_ASCII: case US_ASCII:
goto ilseq; goto ilseq;
}
break;
case WCHAR_T: case WCHAR_T:
l = sizeof(wchar_t); l = sizeof(wchar_t);
if (*inb < l) goto starved; if (*inb < l) goto starved;
...@@ -461,6 +182,13 @@ size_t iconv(iconv_t cd0, char **in, size_t *inb, char **out, size_t *outb) ...@@ -461,6 +182,13 @@ size_t iconv(iconv_t cd0, char **in, size_t *inb, char **out, size_t *outb)
c = ((c-0xd800)<<10) | (d-0xdc00); c = ((c-0xd800)<<10) | (d-0xdc00);
} }
break; break;
default:
if (c < 128+type) break;
c -= 128+type;
c = legacy_chars[ map[c*5/4]>>2*c%8 |
map[c*5/4+1]<<8-2*c%8 & 1023 ];
if (!c) c = *(unsigned char *)*in;
if (c==1) goto ilseq;
} }
switch (totype) { switch (totype) {
...@@ -480,51 +208,25 @@ size_t iconv(iconv_t cd0, char **in, size_t *inb, char **out, size_t *outb) ...@@ -480,51 +208,25 @@ size_t iconv(iconv_t cd0, char **in, size_t *inb, char **out, size_t *outb)
*out += k; *out += k;
*outb -= k; *outb -= k;
break; break;
case TIS_620: case US_ASCII:
if (c-0xe01u <= 0xff-0xa1) if (c > 0x7f) subst: x++, c='*';
c -= 0xe01-0xa1; default:
else if (c >= 0xa1)
goto ascii;
goto revout;
case JIS_0201:
if (c-0xff61u <= 0xdf-0xa1)
c -= 0xff61-0xa1;
else if (c >= 0xa1)
goto ascii;
goto revout;
case LATIN_9:
if (c == 0x20ac) {
c=0xa4;
} else if (c-0x150u<=0x12 && (1<<c-0x150 & 0x3000c)) {
static const unsigned char map[] =
{ 0xa6,0xa8,0xbc,0xbd };
c = map[c&3];
} else if (c-0x178u<=0x7 && (1<<c-0x178 & 0x61)) {
static const unsigned char map[] =
{ 0xbe,0,0,0,0,0xb4,0xb8 };
c = map[c&7];
} else if (c>0x100 ||
c-0xa5u<=0xbeu-0xa5
&& (1<<c-0xa5 & 0x388800a))
case US_ASCII: ascii:
if (c > 0x7f) x++, c='*';
case 9: case 10: case 11: case 13: case 14:
if (*outb < 1) goto toobig; if (*outb < 1) goto toobig;
if (c < toelide) { if (c < 128+totype) {
revout: revout:
*(*out)++ = c; *(*out)++ = c;
*outb -= 1; *outb -= 1;
break; break;
} }
for (d=0; d<256-toelide; d++) { d = c;
if (c == get_mapping(tomap, d, totype)) { for (c=0; c<128-totype; c++) {
c = d + toelide; if (d == legacy_chars[ map[c*5/4]>>2*c%8 |
map[c*5/4+1]<<8-2*c%8 & 1023 ]) {
c += 128;
goto revout; goto revout;
} }
} }
x++; goto subst;
c = '*';
goto revout;
case UCS2BE: case UCS2BE:
case UCS2LE: case UCS2LE:
case UTF_16BE: case UTF_16BE:
......
0,1,160,167,168,169,175,176,178,183,184,198,215,216,230,247,248,256,257,258,
259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,278,279,
280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,
299,302,303,304,305,308,309,310,311,312,313,314,315,316,317,318,321,322,323,
324,325,326,327,328,330,331,332,333,336,337,338,339,340,341,342,343,344,345,
346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,
365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,402,
416,417,431,432,536,537,538,539,710,711,728,729,731,732,733,768,769,771,777,
803,890,900,901,902,904,905,906,908,910,911,912,913,914,915,916,917,918,919,
920,921,922,923,924,925,926,927,928,929,931,932,933,934,935,936,937,938,939,
940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,
959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,1025,1026,
1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1038,1039,1040,1041,1042,
1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,
1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,1072,
1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,
1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,
1103,1105,1106,1107,1108,1109,1110,1111,1112,1113,1114,1115,1116,1118,1119,
1168,1169,1456,1457,1458,1459,1460,1461,1462,1463,1464,1465,1467,1468,1469,
1470,1471,1472,1473,1474,1475,1488,1489,1490,1491,1492,1493,1494,1495,1496,
1497,1498,1499,1500,1501,1502,1503,1504,1505,1506,1507,1508,1509,1510,1511,
1512,1513,1514,1520,1521,1522,1523,1524,1548,1563,1567,1569,1570,1571,1572,
1573,1574,1575,1576,1577,1578,1579,1580,1581,1582,1583,1584,1585,1586,1587,
1588,1589,1590,1591,1592,1593,1594,1600,1601,1602,1603,1604,1605,1606,1607,
1608,1609,1610,1611,1612,1613,1614,1615,1616,1617,1618,1657,1662,1670,1672,
1681,1688,1705,1711,1722,1726,1729,1746,3585,3586,3587,3588,3589,3590,3591,
3592,3593,3594,3595,3596,3597,3598,3599,3600,3601,3602,3603,3604,3605,3606,
3607,3608,3609,3610,3611,3612,3613,3614,3615,3616,3617,3618,3619,3620,3621,
3622,3623,3624,3625,3626,3627,3628,3629,3630,3631,3632,3633,3634,3635,3636,
3637,3638,3639,3640,3641,3642,3647,3648,3649,3650,3651,3652,3653,3654,3655,
3656,3657,3658,3659,3660,3661,3662,3663,3664,3665,3666,3667,3668,3669,3670,
3671,3672,3673,3674,3675,7682,7683,7690,7691,7710,7711,7744,7745,7766,7767,
7776,7777,7786,7787,7808,7809,7810,7811,7812,7813,7922,7923,8204,8205,8206,
8207,8211,8212,8213,8215,8216,8217,8218,8220,8221,8222,8224,8225,8226,8230,
8240,8249,8250,8362,8363,8364,8367,8470,8482,8729,8730,8776,8804,8805,8992,
8993,9472,9474,9484,9488,9492,9496,9500,9508,9516,9524,9532,9552,9553,9554,
9555,9556,9557,9558,9559,9560,9561,9562,9563,9564,9565,9566,9567,9568,9569,
9570,9571,9572,9573,9574,9575,9576,9577,9578,9579,9580,9600,9604,9608,9612,
9616,9617,9618,9619,9632,
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册