This commit is contained in:
Matthias Koefferlein 2020-01-28 23:46:42 +01:00
commit de5f092d37
3 changed files with 93 additions and 1 deletions

78
scripts/jhf2c.pl Executable file
View File

@ -0,0 +1,78 @@
#!/usr/bin/perl
use strict;
my $name;
while ($name = shift) {
my $num;
my $ch = 32;
my @EDG;
my @INFO;
open JHF, "<$name.jhf" or die "cannot open $name.jhf";
my $yymax = 0; my $yymin = 0;
LP: while (read (JHF,$num,5) > 0) {
my $n;
if (read (JHF,$n,3) < 3) {
last LP;
}
my $starti = @EDG;
my $c1;
my $c2;
read (JHF,$c1,1);
read (JHF,$c2,1);
my $x1 = ord ($c1);
my $x2 = ord ($c2);
my $w = $x2-$x1;
my $ymin = 0;
my $ymax = 0;
my $last = undef;
while ($n > 1) {
read(JHF,$c1,1);
while (ord ($c1) == 13 || ord ($c1) == 10) {
read(JHF,$c1,1);
}
read(JHF,$c2,1);
my $x = ord($c1)-$x1;
my $y = ord("Z")+1-ord($c2);
if ($y < $ymin) { $ymin = $y }
if ($y > $ymax) { $ymax = $y }
if ($c1 eq " ") {
$last = undef;
} else {
if (defined($last)) {
push @EDG, "$last, $x, $y";
}
$last = "$x, $y";
}
$n--;
}
my $endi = @EDG;
push @INFO, [ $starti, $endi, $w, $ymin, $ymax ];
read(JHF,$c1,1);
if (ord ($c1) == 13) {
read(JHF,$c1,1);
}
if ($ymin < $yymin) { $yymin = $ymin }
if ($ymax > $yymax) { $yymax = $ymax }
$ch++;
}
close JHF;
print "short ${name}_edges [][4] = {\n { ", join(" },\n { ", @EDG), " }\n};\n\n";
print "HersheyCharInfo ${name}_info [] = {\n HersheyCharInfo (";
my @INFOS = map { join (", ", @$_) } @INFO;
print join ("),\n HersheyCharInfo (", @INFOS);
print ")\n};\n";
print "\nstatic HersheyFont $name (${name}_edges, ${name}_info, 32, ",$ch,", ", $yymax, ", ", $yymin, ");\n\n";
}

14
scripts/mk_hershey_fonts.sh Executable file
View File

@ -0,0 +1,14 @@
#!/bin/bash -e
inst_dir=$(dirname $(which $0))
fonts=(rowmant timesr timesi futural futuram gothiceng rowmand)
for font in ${fonts[@]}; do
svn cat https://github.com/kamalmostafa/hershey-fonts.git/trunk/hershey-fonts/$font.jhf >$font.jhf
$inst_dir/jhf2c.pl $font
rm $font.jhf
done

View File

@ -2449,7 +2449,7 @@ HersheyCharInfo rowmant_info [] = {
HersheyCharInfo (1030, 1070, 23, 0, 21),
HersheyCharInfo (1070, 1097, 24, 0, 21),
HersheyCharInfo (1097, 1110, 12, 0, 21),
HersheyCharInfo (1110, 1137, 0, 0, 21),
HersheyCharInfo (1110, 1137, 16, 0, 21),
HersheyCharInfo (1137, 1160, 22, 0, 21),
HersheyCharInfo (1160, 1178, 18, 0, 21),
HersheyCharInfo (1178, 1199, 26, 0, 21),