summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/fonts/gnu-freefont/tools/test/MES-Conformance/CheckConformance.pl
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/doc/fonts/gnu-freefont/tools/test/MES-Conformance/CheckConformance.pl')
-rwxr-xr-xMaster/texmf-dist/doc/fonts/gnu-freefont/tools/test/MES-Conformance/CheckConformance.pl60
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";
+ }
+}