Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Third Party Musl
提交
594b16e0
T
Third Party Musl
项目概览
OpenHarmony
/
Third Party Musl
大约 1 年 前同步成功
通知
37
Star
125
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
Third Party Musl
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
594b16e0
编写于
7月 12, 2011
作者:
R
Rich Felker
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
simplify iconv and support more legacy codepages
上级
6b1d3817
变更
3
显示空白变更内容
内联
并排
Showing
3 changed file
with
331 addition
and
352 deletion
+331
-352
src/locale/codepages.h
src/locale/codepages.h
+238
-0
src/locale/iconv.c
src/locale/iconv.c
+54
-352
src/locale/legacychars.h
src/locale/legacychars.h
+39
-0
未找到文件。
src/locale/codepages.h
0 → 100644
浏览文件 @
594b16e0
"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
"
src/locale/iconv.c
浏览文件 @
594b16e0
...
...
@@ -6,25 +6,15 @@
#include <limits.h>
#include <stdint.h>
#define UTF_32BE 000
#define UTF_16LE 001
#define UTF_16BE 002
#define UTF_32LE 003
#define UCS2BE 004
#define UCS2LE 005
#define WCHAR_T 007
#define US_ASCII 021
#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
#define UTF_32BE 0300
#define UTF_16LE 0301
#define UTF_16BE 0302
#define UTF_32LE 0303
#define UCS2BE 0304
#define UCS2LE 0305
#define US_ASCII 0306
#define WCHAR_T 0307
#define UTF_8 0310
/* FIXME: these are not implemented yet
* EUC: A1-FE A1-FE
...
...
@@ -34,254 +24,25 @@
/* Definitions of charmaps. Each charmap consists of:
* 1. Empty-string-terminated list of null-terminated aliases.
* 2. Special type code or bits per character.
* 3. Number of elided entries (128 for specials).
* 4. Character table (size determined by fields 2 and 3). */
* 2. Special type code or number of elided entries.
* 3. Character table (size determined by field 2). */
static
const
unsigned
char
charmaps
[]
=
"utf8
\0\0\022\x80
"
"wchart
\0\0\007\x80
"
"ucs2
\0
ucs2be
\0\0\004\x80
"
"ucs2le
\0\0\005\x80
"
"utf16
\0
utf16be
\0\0\002\x80
"
"utf16le
\0\0\001\x80
"
"ucs4
\0
ucs4be
\0
utf32
\0
utf32be
\0\0\000\x80
"
"ucs4le
\0
utf32le
\0\0\003\x80
"
"ascii
\0
iso646
\0
usascii
\0\0\021\x80
"
"latin1
\0
iso88591
\0\0\x09\x80
"
"latin9
\0
iso885915
\0\0\024\x80
"
"tis620
\0
iso885911
\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
"
"utf8
\0\0\310
"
"wchart
\0\0\307
"
"ucs2
\0
ucs2be
\0\0\304
"
"ucs2le
\0\0\305
"
"utf16
\0
utf16be
\0\0\302
"
"utf16le
\0\0\301
"
"ucs4
\0
ucs4be
\0
utf32
\0
utf32be
\0\0\300
"
"ucs4le
\0
utf32le
\0\0\303
"
"ascii
\0
usascii
\0
iso646
\0
iso646us
\0\0\306
"
#include "codepages.h"
;
static
const
unsigned
short
legacy_chars
[]
=
{
#include "legacychars.h"
};
static
int
fuzzycmp
(
const
unsigned
char
*
a
,
const
unsigned
char
*
b
)
{
...
...
@@ -301,7 +62,10 @@ static size_t find_charmap(const void *name)
return
s
+
1
-
charmaps
;
}
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
;
}
...
...
@@ -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
)
{
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
)
{
e
&=
3
;
s
[
e
^
0
]
=
c
>>
24
;
s
[
e
^
1
]
=
c
>>
16
;
s
[
e
^
2
]
=
c
>>
8
;
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 */
#define mbrtowc_utf8 mbrtowc
#define wctomb_utf8 wctomb
...
...
@@ -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
to
=
cd
&
0xffff
;
unsigned
from
=
cd
>>
16
;
const
unsigned
char
*
map
=
charmaps
+
from
+
2
;
const
unsigned
char
*
tomap
=
charmaps
+
to
+
2
;
const
unsigned
char
*
map
=
charmaps
+
from
+
1
;
const
unsigned
char
*
tomap
=
charmaps
+
to
+
1
;
mbstate_t
st
=
{
0
};
wchar_t
wc
;
unsigned
c
,
d
;
size_t
k
,
l
;
int
err
;
unsigned
elide
=
map
[
-
1
]
+
128
;
unsigned
toelide
=
tomap
[
-
1
]
+
128
;
unsigned
char
type
=
map
[
-
2
];
unsigned
char
totype
=
tomap
[
-
2
];
unsigned
char
type
=
map
[
-
1
];
unsigned
char
totype
=
tomap
[
-
1
];
if
(
!
in
||
!*
in
||
!*
inb
)
return
0
;
for
(;
*
inb
;
*
in
+=
l
,
*
inb
-=
l
)
{
c
=
*
(
unsigned
char
*
)
*
in
;
l
=
1
;
if
(
type
<
8
||
c
>=
0x80
)
switch
(
type
)
{
if
(
c
>=
128
)
switch
(
type
)
{
case
UTF_8
:
l
=
mbrtowc_utf8
(
&
wc
,
*
in
,
*
inb
,
&
st
);
if
(
!
l
)
l
++
;
...
...
@@ -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
;
c
=
wc
;
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
:
goto
ilseq
;
}
break
;
case
WCHAR_T
:
l
=
sizeof
(
wchar_t
);
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)
c
=
((
c
-
0xd800
)
<<
10
)
|
(
d
-
0xdc00
);
}
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
)
{
...
...
@@ -480,51 +208,25 @@ size_t iconv(iconv_t cd0, char **in, size_t *inb, char **out, size_t *outb)
*
out
+=
k
;
*
outb
-=
k
;
break
;
case
TIS_620
:
if
(
c
-
0xe01u
<=
0xff
-
0xa1
)
c
-=
0xe01
-
0xa1
;
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
:
case
US_ASCII
:
if
(
c
>
0x7f
)
subst
:
x
++
,
c
=
'*'
;
default:
if
(
*
outb
<
1
)
goto
toobig
;
if
(
c
<
toelid
e
)
{
if
(
c
<
128
+
totyp
e
)
{
revout:
*
(
*
out
)
++
=
c
;
*
outb
-=
1
;
break
;
}
for
(
d
=
0
;
d
<
256
-
toelide
;
d
++
)
{
if
(
c
==
get_mapping
(
tomap
,
d
,
totype
))
{
c
=
d
+
toelide
;
d
=
c
;
for
(
c
=
0
;
c
<
128
-
totype
;
c
++
)
{
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
;
}
}
x
++
;
c
=
'*'
;
goto
revout
;
goto
subst
;
case
UCS2BE
:
case
UCS2LE
:
case
UTF_16BE
:
...
...
src/locale/legacychars.h
0 → 100644
浏览文件 @
594b16e0
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.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录