6 (($n, $m, $c) = split(" ", $_, 3)) >= 3 || next;
13 foreach $name (@NAME) {
18 print "$name\t$map\t$code\n";
26 (($i, $u) = split(" ")) || next;
30 if (! $from_ucs0{$u}) {
36 %from_ucs0 = %from_ucs;
41 for $ub (0x81 .. 0xFE) {
42 for $lb (0x40 .. 0x7E, 0x80 .. 0xFE) {
43 $i = ($ub << 8) + $lb;
44 if ($u = $to_ucs{$i}) {
72 $gbk_end{$s} = 0xFEFE;
78 for $u (0x0080 .. 0xD7FF, 0xE000 .. 0xFFFF) {
79 if (! $from_ucs{$u}) {
88 $ucs4_end{$s} = $u - 1;
94 $ucs4_end{$s} = $u - 1;
100 $ucs4_end{$s} = 0xFFFF;
103 open(OUT, "> ${name}_ucs.map");
107 # These conversion tables between $code and
108 # Unicode were made from
110 # ftp://ftp.unicode.org/Public/MAPPINGS/$map.
116 @ucs = sort { $a <=> $b } keys %to_ucs2;
121 #define N_gbk_ext_ucs_map $nucs
123 wc_map3 gbk_ext_ucs_map[ N_gbk_ext_ucs_map ] = {
126 printf OUT " { 0x%.4X, 0x%.4X, 0x%.4X },\n", $_, $gbk_end{$_}, $to_ucs2{$_};
133 @ucs = sort { $a <=> $b } keys %from_ucs2;
138 #define N_ucs_gbk_ext_map $nucs
140 static wc_map3 ucs_gbk_ext_map[ N_ucs_gbk_ext_map ] = {
143 printf OUT " { 0x%.4X, 0x%.4X, 0x%.4X },\n", $_, $ucs2_end{$_}, $from_ucs2{$_};
150 @ucs = sort { $a <=> $b } keys %from_ucs4;
155 #define N_ucs_${name}_map $nucs
157 static wc_map3 ucs_${name}_map[ N_ucs_${name}_map ] = {
160 printf OUT " { 0x%.4X, 0x%.4X, 0x%.4X },\n", $_, $ucs4_end{$_}, $from_ucs4{$_};
171 gbk VENDORS/MICSFT/WINDOWS/CP936.TXT GBK (Chinese)
172 gb18030 GBK.TXT GB18030 (Chinese)