}
seenrules=/
+seenfoundries=/
while read keyword rest; do
case "$keyword" in
pcf)
pcf=$rest
for f in good bad; do
+ in=$f/$pcf.pcf.gz
out=$f/$pcf.bdf
- zcat $f/$pcf.pcf.gz | pcf2bdf >$out
+ if [ -e $in ]; then
+ zcat $in | pcf2bdf | ./bdfnorm >$out
+ elif [ -e "$out.direct" ]; then
+ ./bdfnorm <"$out.direct" >"$out"
+ elif [ -e "$f/$pcf.sfd" ]; then
+ ./ffconvert.pe "$f/$pcf"
+ # fontforge writes a silly filename
+ ./bdfnorm <"$f/$pcf".BDF*.bdf >$out
+ else
+ echo >&2 "cannot make $out!"
+ exit 1
+ fi
eval "$f=\$out"
done
;;
m/^\d+\,(\d+)\b/ or die;
print "key=$_; height=$1\n" or die $!;
exit;
- ' <$good`
+ ' <$bad`
oldfoundry=`perl -ne '
next unless s/^FOUNDRY\s+\"?//;
s/\"?\s+$//;
print or die $!;
exit;
' <$good`
- printf "%s %s" "$oldfoundry" "$newfoundry" >>rules/foundries.new
+ case "$seenfoundries" in
+ */"$oldfoundry,$newfoundry"/*)
+ ;;
+ */"$oldfoundry,"*)
+ echo >&2 "inconsistent foundry mapping"
+ exit 1
+ ;;
+ *)
+ seenfoundries=$seenfoundries$oldfoundry,$newfoundry/
+ printf >>rules/foundries.new \
+ "%s %s\n" "$oldfoundry" "$newfoundry"
+ ;;
+ esac
case "$seenrules" in
*/"$newfoundry,$key"/*)
exec 3>>rules/$newfoundry,$key.rules