diff options
Diffstat (limited to 'language/japanese/japanese-otf-uptex/script/mkutf32list.pl')
-rwxr-xr-x | language/japanese/japanese-otf-uptex/script/mkutf32list.pl | 162 |
1 files changed, 0 insertions, 162 deletions
diff --git a/language/japanese/japanese-otf-uptex/script/mkutf32list.pl b/language/japanese/japanese-otf-uptex/script/mkutf32list.pl deleted file mode 100755 index 377659d398..0000000000 --- a/language/japanese/japanese-otf-uptex/script/mkutf32list.pl +++ /dev/null @@ -1,162 +0,0 @@ -#!/usr/bin/perl -n -s - -=head1 NAME - -mkutf32list.pl - -=head1 USAGE - -mkutf32list.pl cid2code.txt > sp_jp_text.tex -mkutf32list.pl -style=utf cid2code.txt > sp_jp_utf.tex -mkutf32list.pl -style=kchar cid2code.txt > sp_jp_kchar.tex -mkutf32list.pl -style=list cid2code.txt > sp_list_j.txt -mkutf32list.pl -style=list-wo-collec cid2code.txt > sp_list_ja.txt -mkutf32list.pl -allrange cid2code.txt > sp_jp_text.tex - -=head1 AUTHOR - -Takuji Tanaka - -=head1 NOTE - -This software is a part of otfbeta-uptex (a.k.a. japanese-otf-uptex). - -=cut - -use strict; -binmode(STDOUT, ":utf8"); - -our ($style, $allrange); -our (@count, %reset_ch, $icollec, $cid2code, $line); -our ($col_utf32, @out); -our (@cid_max, $collection_n, $collection, $utfmac, $cmap, $source); - -BEGIN{ - $line = 0; - @count = (); - %reset_ch = (); - $icollec = 0; - @out = (); -} - -if (/cid2code/) { - chomp; - s/^# /# in /; - $cid2code=$_; - $cid2code=~s/^#/%/; -} - -if ($.<8 && /((Adobe-(?:Japan|CNS|GB|Korea).*)-\d)\s/) { - $collection_n=$1; - $collection=$2; - if ($collection =~ /cns/i) { - @cid_max = qw/-1 14098 17407 17600 18845 18964 19087 19155 19178/; - $utfmac="UTFT"; $cmap="UniCNS-UTF32"; - $source="Adobe-CNS1-7/cid2code.txt"; } - elsif ($collection =~ /gb/i) { - @cid_max = qw/-1 7716 9896 22126 22352 29063 30283/; - $utfmac="UTFC"; $cmap="UniGB-UTF32"; - $source="Adobe-GB1-5/cid2code.txt"; } - elsif ($collection =~ /kor/i) { - @cid_max = qw/-1 9332 18154 18351/; - $utfmac="UTFK"; $cmap="UniKS-UTF32"; - $source="Adobe-Korea1-2/cid2code.txt"; } - else { - @cid_max = qw/-1 8283 8358 8719 9353 15443 20316 23057 23059/; - $utfmac="UTF"; $cmap="UniJIS-UTF32"; - $source="Adobe-Japan1-7/cid2code.txt"; } -} - -next if (/^#/); -$line++; -if ($line == 1) { - print <<END; -% -% This file is generated from the data of $cmap -$cid2code -% for $collection_n -% -% Reference: -% https://github.com/adobe-type-tools/cmap-resources/ -% $source -% -% A newer CMap may be required for some code points. -% -END -} -if (/^CID/) { - my @header = split; - my $i=0; - foreach (@header) { - if (/^Uni(JIS|KS|CNS|GB)-UTF32$/) { - $col_utf32 = $i; - last; - } - $i++ - } - next; -} - -my @list = split; -my $cid = $list[0]; -my @utf32 = split ',', $list[$col_utf32]; - -foreach (@utf32) { - s/^0+//; - - next if ($_ eq '*'); - next if ($_ =~ '^[1-7][0-9a-f]$|^.$'); - next if ($_ =~ 'v'); - tr/a-z/A-Z/; - my $ch=hex($_); - next if ($ch < 0x10000 && !$allrange); - - while(!($cid_max[$icollec+1]>=$cid && $cid>$cid_max[$icollec])) { - $icollec++; - if ($icollec>@cid_max) { - die "CID:$cid (Character $_) is out of range!!\n"; - } - } - if ($count[$icollec]==0) { - $reset_ch{$ch}=$icollec; - } - $count[$icollec]++; - push @out, $ch; -} - - -END { - my ($i, $out, $ch); - - if ($style eq "list-wo-collec") { @out = sort(@out); } - - foreach $ch (@out) { - if ($style eq "list-wo-collec") {} - elsif (defined($reset_ch{$ch})) { - $i=0; - print "\n\n"; - print "%" if ($style =~ /list/); - print "$collection-$reset_ch{$ch}"; - print "\\\\" if ($style !~ 'list'); - print "\n"; - } - - $i++; - if ($style =~ /utf/) { $out=sprintf "\\${utfmac}{%X}", $ch; } - elsif ($style =~ /kchar/) { $out=sprintf "\\kchar\"%X", $ch; } - elsif ($style =~ /list/) { $out=sprintf "%X", $ch; } - else { $out=chr($ch); } - my ($newline); - $newline = $allrange ? 25 : 10; - if ($i % $newline != 1) { - print "," if ($style =~ /list/); - } - print $out; - if ($i % $newline == 0) { - print "%" if ($style =~ /utf/); - print "\n" ; - } - } - - print "\n\n% end\n"; -} |