X-Git-Url: https://git.distorted.org.uk/~mdw/xfonts-traditional/blobdiff_plain/148a1d855cf669f9e11a06434a4f9d5b58861df9..15fc3ba19faec7f483788f208af4df66579104f9:/mkrules diff --git a/mkrules b/mkrules new file mode 100755 index 0000000..734e2a2 --- /dev/null +++ b/mkrules @@ -0,0 +1,68 @@ +#!/bin/bash +set -e +set -o pipefail +rm -f rules/foundries +rm -f rules/*.rules rules/foundries.new + +chars () { + for c in $rest; do + ord=`perl -e 'print ord($ARGV[0]),"\n" or die $!' "$c"` + ./printrule >&3 "$bad" "$good" $height \ + "^ENCODING $ord$" $partial "$c" + done +} + +while read keyword rest; do + case "$keyword" in + '#'|'') continue ;; + pcf) + pcf=$rest + for f in good bad; do + out=$f/$pcf.bdf + zcat $f/$pcf.pcf.gz | pcf2bdf >$out + eval "$f=\$out" + done + ;; + rules) + newfoundry=$rest + eval `perl -ne ' + next unless s/^BBX\s+//; + s/\s+$//; + s/\s+/,/g; + s/[-+]?\b\d+\b/ sprintf "%d", $& /ge; + m/^\d+\,(\d+)\b/ or die; + print "key=$_; height=$1\n" or die $!; + exit; + ' <$good` + oldfoundry=`perl -ne ' + next unless s/^FOUNDRY\s+\"?//; + s/\"?\s+$//; + print or die $!; + exit; + ' <$good` + printf "%s %s" "$oldfoundry" "$newfoundry" >>rules/foundries.new + exec 3>rules/$newfoundry,$key.rules + echo >&3 '# -*- perl -*-' + echo >&3 '# autogenerated by mkrules' + echo >&3 'sub {' + ;; + endrules) + echo >&3 '}' + exec 3&2 "??? $keyword" + exit 1 + ;; + esac +done + +mv rules/foundries.new rules/foundries