aboutsummaryrefslogtreecommitdiff
path: root/dist/troff
diff options
context:
space:
mode:
authorRuss Cox <rsc@swtch.com>2008-07-10 01:07:31 -0400
committerRuss Cox <rsc@swtch.com>2008-07-10 01:07:31 -0400
commit390c870c0f3ef8af6ee7408123a25b2efe3b7509 (patch)
tree4bf2801ab4af07040b4c66ad9bda5083f13fd860 /dist/troff
parent2af649f94c2a0366a9d58411013dc10c1ff5bb9f (diff)
downloadplan9port-390c870c0f3ef8af6ee7408123a25b2efe3b7509.tar.gz
plan9port-390c870c0f3ef8af6ee7408123a25b2efe3b7509.tar.bz2
plan9port-390c870c0f3ef8af6ee7408123a25b2efe3b7509.zip
tfont: accomodate broken fonts with multiply-mapped glyphs
Diffstat (limited to 'dist/troff')
-rwxr-xr-xdist/troff/tfont42
1 files changed, 37 insertions, 5 deletions
diff --git a/dist/troff/tfont b/dist/troff/tfont
index 6e8f6619..3b3e862d 100755
--- a/dist/troff/tfont
+++ b/dist/troff/tfont
@@ -16,10 +16,42 @@ for(font){
if not if(~ $font *.sfd)
font=`{9 basename $font .sfd}
echo '
- Open("'$f0'")
- Generate("'$font^%s.pfb'", "", -1, 72, "map.sfd")
- ' >fontforge.in
- fontforge -script fontforge.in
+import fontforge
+f = fontforge.open("'$f0'")
+ff = fontforge.open("./'$f0'")
+changed = True
+while changed:
+ changed = False
+ for i in range(0, len(f)):
+ try:
+ f[i].temporary = [ ]
+ except:
+ pass
+
+ for i in range(0, len(f)):
+ try:
+ f[i].temporary.append(i)
+ except:
+ pass
+
+ for i in range(0, len(f)):
+ try:
+ g = f[i]
+ codes = g.temporary
+ if len(codes) > 1:
+ print "Doubled: ", g.temporary
+ gg = ff[i]
+ f.removeGlyph(g)
+ for j in range(1, len(codes)):
+ f.createMappedChar(codes[j])
+ f.createInterpolatedGlyph(gg, gg, 0)
+ changed = True
+ except:
+ pass
+
+f.generate("'$font^%s.pfb'", "", ("afm",), 72, "map.sfd")
+' >fontforge.in
+ fontforge '-lang=py' -script fontforge.in
{
echo name $font
echo fontname $font
@@ -27,7 +59,7 @@ for(font){
>$font.tpost
for(h in $hex){
if(test -f $font$h.pfb){
- pfb2pfa $font$h.pfb $font$h.pfa
+ pfb2pfa $font$h.pfb
mv $font$h.pfa /usr/local/plan9/postscript/font/$font$h
afm2troff -h -o 0x$h^00 $font$h.afm >>$font.troff
echo 0x$h^00 0x$h^FF $font$h >>$font.tpost