summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/fonts/japanese-otf/src/script/mkutf32list.pl
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2022-02-18 23:02:28 +0000
committerKarl Berry <karl@freefriends.org>2022-02-18 23:02:28 +0000
commita9a767323f5a32d8552c16ef6da0af4cec163044 (patch)
treead67e6d393217b77e30a06b873e7aca520750cee /Master/texmf-dist/doc/fonts/japanese-otf/src/script/mkutf32list.pl
parent87c99531bd84a7b1c1b5004b7c452eef73e6df15 (diff)
j-otf src/ subdir to source/j-otf
git-svn-id: svn://tug.org/texlive/trunk@62079 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/doc/fonts/japanese-otf/src/script/mkutf32list.pl')
-rwxr-xr-xMaster/texmf-dist/doc/fonts/japanese-otf/src/script/mkutf32list.pl162
1 files changed, 0 insertions, 162 deletions
diff --git a/Master/texmf-dist/doc/fonts/japanese-otf/src/script/mkutf32list.pl b/Master/texmf-dist/doc/fonts/japanese-otf/src/script/mkutf32list.pl
deleted file mode 100755
index 377659d3983..00000000000
--- a/Master/texmf-dist/doc/fonts/japanese-otf/src/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";
-}