This commit is contained in:
Matthias Koefferlein 2020-01-23 18:38:41 +01:00
parent 925b7c2f33
commit 21397283f3
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),