~sbinet/star-tex#21: 
tfm: improve robustness of tfm2pl

$> tftopl /usr/share/texmf-dist/fonts/tfm/public/amsfonts/dummy/dummy.tfm
(FAMILY UNSPECIFIED)
(FACE F MRR)
(CODINGSCHEME NULL FONT FOR SYNTAX CHECKING)
(DESIGNSIZE R 10.0)
(COMMENT DESIGNSIZE IS IN POINTS)
(COMMENT OTHER SIZES ARE MULTIPLES OF DESIGNSIZE)
(CHECKSUM O 1234567)
(FONTDIMEN
   (SLANT R 0.0)
   (SPACE R 0.0)
   (STRETCH R 0.0)
   (SHRINK R 0.0)
   (XHEIGHT R 0.0)
   (QUAD R 0.0)
   (EXTRASPACE R 0.0)
   (PARAMETER D 8 R 0.0)
   (PARAMETER D 9 R 0.0)
   (PARAMETER D 10 R 0.0)
   (PARAMETER D 11 R 0.0)
   (PARAMETER D 12 R 0.0)
   (PARAMETER D 13 R 0.0)
   (PARAMETER D 14 R 0.0)
   (PARAMETER D 15 R 0.0)
   (PARAMETER D 16 R 0.0)
   (PARAMETER D 17 R 0.0)
   (PARAMETER D 18 R 0.0)
   (PARAMETER D 19 R 0.0)
   (PARAMETER D 20 R 0.0)
   (PARAMETER D 21 R 0.0)
   (PARAMETER D 22 R 0.0)
   )

$> tfm2pl /usr/share/texmf-dist/fonts/tfm/public/amsfonts/dummy/dummy.tfm
panic: invalid np

goroutine 1 [running]:
star-tex.org/x/tex/font/tfm.(*textEncoder).encodeFontDimen(0xc000078968, 0xc000078b68, {0x4b2bb8, 0x8})
	/home/binet/dev/go/src/star-tex/font/tfm/encoder.go:265 +0x9e5
star-tex.org/x/tex/font/tfm.(*textEncoder).encodeHeader(0xc000078968, 0xc000078b68)
	/home/binet/dev/go/src/star-tex/font/tfm/encoder.go:223 +0x4c5
star-tex.org/x/tex/font/tfm.(*textEncoder).encode(0xc000078968, 0x588150)
	/home/binet/dev/go/src/star-tex/font/tfm/encoder.go:176 +0x25
star-tex.org/x/tex/font/tfm.(*Font).MarshalText(0x100120032)
	/home/binet/dev/go/src/star-tex/font/tfm/font.go:389 +0xf2
main.process({0x4d25a0, 0xc00000e018}, {0x4d2580, 0xc00000e080})
	/home/binet/dev/go/src/star-tex/cmd/tfm2pl/main.go:98 +0x155
main.xmain({0xc000010050, 0x1, 0x0})
	/home/binet/dev/go/src/star-tex/cmd/tfm2pl/main.go:86 +0x2c8
main.main()
	/home/binet/dev/go/src/star-tex/cmd/tfm2pl/main.go:53 +0xa5

also:

$> tfm2pl /usr/share/texmf-dist/fonts/tfm/production/spectral/Spectral-Regular-lf-t1.tfm
panic: runtime error: index out of range [5040] with length 5000

goroutine 1 [running]:
star-tex.org/x/tex/font/tfm.(*textEncoder).buildLabels(0xc000078968, 0xc000078b68)
	/home/binet/dev/go/src/star-tex/font/tfm/encoder.go:394 +0x2e7
star-tex.org/x/tex/font/tfm.(*textEncoder).encodeLigTable(0xc000055968, 0xc000055b68)
	/home/binet/dev/go/src/star-tex/font/tfm/encoder.go:297 +0x105
star-tex.org/x/tex/font/tfm.(*textEncoder).encodeHeader(0xc000078968, 0xc000078b68)
	/home/binet/dev/go/src/star-tex/font/tfm/encoder.go:224 +0x4da
star-tex.org/x/tex/font/tfm.(*textEncoder).encode(0xc000055968, 0xc000180000)
	/home/binet/dev/go/src/star-tex/font/tfm/encoder.go:176 +0x25
star-tex.org/x/tex/font/tfm.(*Font).MarshalText(0xff000000122d26)
	/home/binet/dev/go/src/star-tex/font/tfm/font.go:389 +0xf2
main.process({0x4d25a0, 0xc00000e018}, {0x4d2580, 0xc00000e080})
	/home/binet/dev/go/src/star-tex/cmd/tfm2pl/main.go:98 +0x155
main.xmain({0xc000010050, 0x1, 0x0})
	/home/binet/dev/go/src/star-tex/cmd/tfm2pl/main.go:86 +0x2c8
main.main()
	/home/binet/dev/go/src/star-tex/cmd/tfm2pl/main.go:53 +0xa5
Status
REPORTED
Submitter
~sbinet
Assigned to
No-one
Submitted
3 years ago
Updated
3 years ago
Labels
No labels applied.