+++ /dev/null
-#!@PERL@ -w
-# -*-perl-*-
-
-=head1 TODO
-
-rename me!
-
-Ugh . Perl sux. Anybody for Python?
-
-=cut
-
-$mf_to_table_version = 0.2;
-
-use Getopt::Long;
-
-sub last_conversion
-{
- my @v = &versions;
- return pop @v;
-}
-sub identify
-{
-
- print STDERR "This is mf-to-table " . $mf_to_table_version . "\n";
-}
-
-sub usage
-{
- print STDERR "Usage: mf-to-table [options] LOG..\n"
- . "Generate mozarella metrics table from preparated metafont log\n\n"
- . "Options:\n"
- . " -h, --help print this help\n"
- . " -l, --ly=FILE name output table\n"
- . " -t, --tex=FILE name output tex chardefs\n"
-}
-
-sub make_table
-{
- my $line;
- my $indent = 0;
- my $lineno=0;
- while ($line = <IN>) {
- $lineno++;
- if ($line =~ /^@@/) {
- $line =~ s/^@@(.*)@@/$1/;
- chop ($line);
- my @fields = split (/:/,$line);
- my $label = $fields [0];
- my $name = $fields [1];
- print OUTLY "\t" x $indent;
- if ($label eq "font") {
- print OUTLY "% $name=\\symboltables {\n";
- print OUTTEX "% $name\n";
- $indent++;
- } elsif ($label eq "group") {
- print OUTLY "\"$name\" = \\table {\n";
- print OUTTEX "% $name\n";
- $indent++;
- } elsif ($label eq "puorg") {
- print OUTLY "}\n";
- print OUTTEX "\n";
- $indent--;
- } elsif ($label eq "tnof") {
- print OUTLY "% } % $name\n";
- $indent--;
- } elsif ($label eq "char") {
- my $c = $fields [2];
- my $w = $fields [3];
- my $h = $fields [4];
- my $d = $fields [5];
- my $b = $fields [6];
- my $id = $fields [7];
- my $texstr = $fields [8];
- print OUTLY sprintf( "\"%s\"\t\"\\%s\"\t%.2f\\pt\t%.2f\\pt\t%.2f\\pt\t%.2f\\pt\n", $id, $texstr, -$b, $w, $h, -$d );
- # remove % from generic chars, and save start charcode
- my $defstr = "\\fetdef";
- if ($texstr =~ /{%/) {
- $texstr =~ s/{%.*//;
- $texstr .= "start";
- $defstr = "\\def"
- }
- print OUTTEX sprintf( "%s\\%s{%d}\n", $defstr, $texstr, $c);
- } else {
- print STDERR "mf-to-table: $lineno: unknown label: \`$label\'\n";
- }
- }
- }
-}
-
-sub set_files
-{
- if ($ARGV [0]) {
- $infile = $ARGV[0];
- }
- if (!(-f $infile) && !($infile =~ /\.log$/s )) {
- $infile .= ".log";
- }
-
- if (defined($opt_ly)) {
- $lyfile = $opt_ly;
- }
- else {
- $lyfile = $infile;
- $lyfile =~ s/\.log$/.ly/;
- }
- if (defined($opt_tex)) {
- $texfile = $opt_tex;
- }
- else {
- $texfile = $infile;
- $texfile =~ s/\.log$/.tex/;
- }
-
- print STDERR "Input ", (($infile eq "-") ?"STDIN" : $infile), " .. \n";
-}
-
-sub do_one_arg
-{
- set_files;
-
- die "can't open \`$infile\'" unless open IN,$infile ;
-
- die "can't open \`$lyfile\'" unless open OUTLY, ">$lyfile";
- print OUTLY "% generated at " . localtime() . " from $infile\n";
- print OUTLY "% changes will be lost\n\n";
-
- die "can't open \`$texfile\'" unless open OUTTEX, ">$texfile";
- print OUTTEX "% generated at " . localtime() . " from $infile\n";
- print OUTTEX "% changes will be lost\n\n";
-
- make_table;
-
- close IN;
- close OUTLY;
- close OUTTEX;
-}
-
-## "main"
-
-identify;
-
-#GetOptions ("help", "output=s", "from=i", "to=i", "minor=i", "edit", "show-rules");
-GetOptions ("help", "ly=s", "tex=s");
-
-if ($opt_help) {
- usage();
- $opt_help = 0; # to extinguish typo check.
- exit 0;
-}
-
-local ($infile,$lyfile,$texfile);
-my $processed_one=0;
-
-while (defined($ARGV[0])) {
- do_one_arg;
- shift @ARGV;
- $processed_one = 1;
-}
-do_one_arg unless ($processed_one);
-