annotate findUnicode.pl @ 14:e925195b3aa8 default tip

...
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Mon, 26 Apr 2021 08:06:46 +0900
parents a8642503caae
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1 #!/usr/bin/perl
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
2
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
3 # find used unicode
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
4 use strict;
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
5 use utf8;
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
6 use open qw(:std :utf8); # input/output default encoding will be UTF-8, it looks like default
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
7
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
8 my %used;
12
a8642503caae import fix on http://vega.pgw.jp/~kabe/vsd/k14/
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 9
diff changeset
9 # my @fonts = <[0-9]*.bdf> ;
a8642503caae import fix on http://vega.pgw.jp/~kabe/vsd/k14/
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 9
diff changeset
10 my @fonts = @ARGV;
6
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 4
diff changeset
11
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 4
diff changeset
12 use Getopt::Std;
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 4
diff changeset
13 our ($opt_f);
12
a8642503caae import fix on http://vega.pgw.jp/~kabe/vsd/k14/
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 9
diff changeset
14 our ($opt_d);
6
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 4
diff changeset
15
12
a8642503caae import fix on http://vega.pgw.jp/~kabe/vsd/k14/
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 9
diff changeset
16 getopts('f:d');
a8642503caae import fix on http://vega.pgw.jp/~kabe/vsd/k14/
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 9
diff changeset
17 my $fd;
6
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 4
diff changeset
18 if ($opt_f) {
12
a8642503caae import fix on http://vega.pgw.jp/~kabe/vsd/k14/
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 9
diff changeset
19 open $fd,"<",$opt_f or die "can't open $opt_f";
a8642503caae import fix on http://vega.pgw.jp/~kabe/vsd/k14/
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 9
diff changeset
20 } else {
a8642503caae import fix on http://vega.pgw.jp/~kabe/vsd/k14/
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 9
diff changeset
21 print "$0 -f file *.bdf\n";
a8642503caae import fix on http://vega.pgw.jp/~kabe/vsd/k14/
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 9
diff changeset
22 exit 0;
6
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 4
diff changeset
23 }
1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
24
12
a8642503caae import fix on http://vega.pgw.jp/~kabe/vsd/k14/
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 9
diff changeset
25 while(<$fd>) {
1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
26 for my $ch ( /(.)/g ) {
2
7f5d4dad9d6b merge operation
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
27 next if (ord($ch)<128);
4
8da43f287516 make file and merge
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
28 # next if (ord($ch)>=12288); # ignore CJKV
1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
29 $used{ord($ch)}++;
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
30 }
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
31 }
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
32
12
a8642503caae import fix on http://vega.pgw.jp/~kabe/vsd/k14/
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 9
diff changeset
33 my %has;
6
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 4
diff changeset
34 for my $bdf ( @fonts ) {
1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
35 open(my $f,"<",$bdf);
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
36 while(<$f>) {
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
37 if (/^ENCODING\s+(\d+)/) {
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
38 my $encoding=$1;
12
a8642503caae import fix on http://vega.pgw.jp/~kabe/vsd/k14/
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 9
diff changeset
39 $has{$encoding} = [];
a8642503caae import fix on http://vega.pgw.jp/~kabe/vsd/k14/
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 9
diff changeset
40 push @{$has{$encoding}} , $bdf;
1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
41 }
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
42 }
12
a8642503caae import fix on http://vega.pgw.jp/~kabe/vsd/k14/
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 9
diff changeset
43 }
a8642503caae import fix on http://vega.pgw.jp/~kabe/vsd/k14/
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 9
diff changeset
44
a8642503caae import fix on http://vega.pgw.jp/~kabe/vsd/k14/
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 9
diff changeset
45
a8642503caae import fix on http://vega.pgw.jp/~kabe/vsd/k14/
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 9
diff changeset
46 my %no;
a8642503caae import fix on http://vega.pgw.jp/~kabe/vsd/k14/
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 9
diff changeset
47
a8642503caae import fix on http://vega.pgw.jp/~kabe/vsd/k14/
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 9
diff changeset
48 for my $ch ( sort {$a<=>$b} (keys %used )) {
a8642503caae import fix on http://vega.pgw.jp/~kabe/vsd/k14/
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 9
diff changeset
49 if (! defined $has{$ch}) {
2
7f5d4dad9d6b merge operation
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
50 my $hex = sprintf("%x",$ch);
12
a8642503caae import fix on http://vega.pgw.jp/~kabe/vsd/k14/
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 9
diff changeset
51 print chr($ch)," $ch 0x$hex is not found\n";
a8642503caae import fix on http://vega.pgw.jp/~kabe/vsd/k14/
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 9
diff changeset
52 } else {
a8642503caae import fix on http://vega.pgw.jp/~kabe/vsd/k14/
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 9
diff changeset
53 for my $f ( @{$has{$ch}} ) {
a8642503caae import fix on http://vega.pgw.jp/~kabe/vsd/k14/
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 9
diff changeset
54 if ($f eq "14x14ja-new.bdf" or $f eq "7x14-new.bdf" or $f eq "7x14B-new.bdf") {
a8642503caae import fix on http://vega.pgw.jp/~kabe/vsd/k14/
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 9
diff changeset
55 # already defined
a8642503caae import fix on http://vega.pgw.jp/~kabe/vsd/k14/
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 9
diff changeset
56 if ($opt_d) {
a8642503caae import fix on http://vega.pgw.jp/~kabe/vsd/k14/
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 9
diff changeset
57 my $hex = sprintf("%x",$ch);
a8642503caae import fix on http://vega.pgw.jp/~kabe/vsd/k14/
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 9
diff changeset
58 print chr($ch)," $ch 0x$hex is in $f\n";
a8642503caae import fix on http://vega.pgw.jp/~kabe/vsd/k14/
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 9
diff changeset
59 }
a8642503caae import fix on http://vega.pgw.jp/~kabe/vsd/k14/
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 9
diff changeset
60 } else {
a8642503caae import fix on http://vega.pgw.jp/~kabe/vsd/k14/
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 9
diff changeset
61 my $hex = sprintf("%x",$ch);
a8642503caae import fix on http://vega.pgw.jp/~kabe/vsd/k14/
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 9
diff changeset
62 print chr($ch)," $ch 0x$hex is in $f\n";
a8642503caae import fix on http://vega.pgw.jp/~kabe/vsd/k14/
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 9
diff changeset
63 }
a8642503caae import fix on http://vega.pgw.jp/~kabe/vsd/k14/
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 9
diff changeset
64 }
a8642503caae import fix on http://vega.pgw.jp/~kabe/vsd/k14/
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 9
diff changeset
65 }
1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
66 }
12
a8642503caae import fix on http://vega.pgw.jp/~kabe/vsd/k14/
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 9
diff changeset
67