diff options
Diffstat (limited to 'Master/texmf-dist/doc/fonts/gnu-freefont/tools/test/MES-Conformance/CheckConformance.pl')
-rwxr-xr-x | Master/texmf-dist/doc/fonts/gnu-freefont/tools/test/MES-Conformance/CheckConformance.pl | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/fonts/gnu-freefont/tools/test/MES-Conformance/CheckConformance.pl b/Master/texmf-dist/doc/fonts/gnu-freefont/tools/test/MES-Conformance/CheckConformance.pl new file mode 100755 index 00000000000..42bb54d2db7 --- /dev/null +++ b/Master/texmf-dist/doc/fonts/gnu-freefont/tools/test/MES-Conformance/CheckConformance.pl @@ -0,0 +1,60 @@ +#!/usr/bin/perl +# $Id: CheckConformance.pl,v 1.1 2009-12-27 16:25:15 Stevan_White Exp $ +# +# Check conformance of font file with given character sets. + +# Get the characters in the font file +# Regexp for ENCODING line matches BDF and PfaEdit's SFD formats +if ($#ARGV >= 0) { + open(FONTFILE, $ARGV[0]); +} else { + open(FONTFILE, "<stdin"); +} +while (<FONTFILE>) { + if (/^E[Nn][Cc][Oo][Dd][Ii][Nn][Gg]:? ([\d]+)/) { + $char{$1} = 1; + } +} +close (FONTFILE); + +$tbldir = "./"; +@tables = ("MES-1.lst", "MES-2.lst", "MES-3B.lst"); + +foreach $table (0 .. $#tables) { + + $tblfile = $tbldir.$tables[$table]; + + # Read in the table with the named entities + open(TABLE, "<$tblfile") || die "Cannot find $tblfile\n"; + delete @table{keys %table}; + while (<TABLE>) { + if (/^\#.*/) { + next; + } else { + chomp; + ($code,$name) = split(/:/, $_, 9999); + $table{hex($code)} = $name; + } + } + close(TABLE); + + # Get the list of missing chars, sorted numerically by their code + foreach $key (sort {$a <=> $b} keys %table) { + if ($char{$key} != 1) { + push @missing, $key; + } + } + + # Print the list of missing chars, code and ISO 10646 name + if ($#missing >= 0) { + print "\n$#missing characters are found missing for conformance with "; + print "$tblfile:\n"; + for ($i = 0; $i <= $#missing; $i++) { + printf("%04X %s\n", $missing[$i], $table{$missing[$i]}); + } + } else { + print "\nCongratulations!\n"; + print "No characters are found missing for conformance with "; + print "$tblfile.\n"; + } +} |