summaryrefslogtreecommitdiff
path: root/ttfparser.go
diff options
context:
space:
mode:
authorKurt <kurt.w.jung@gmail.com>2016-08-18 11:53:32 -0400
committerKurt <kurt.w.jung@gmail.com>2016-08-18 11:53:32 -0400
commit157aff3575e05946317098493519bb770b328972 (patch)
tree675c84f2ec31fdab6dc4ced54be388de7a9af29c /ttfparser.go
parent5f4a9bf681f9360dc6485cb34108b7fd0bb43c02 (diff)
Allow default compression mode to be set. Go 1.7 introduces a new compression/flate routine that results in different compressed streams than before. Consequently, PDFs generated with go 1.7 are not generally binary-equivalent with those generated with previous versions. Turning off compression for test files removes this variability. However, it does not help with PDFs that contain images. For now, those reference PDFs have been removed to allow tests to proceed.
Diffstat (limited to 'ttfparser.go')
-rw-r--r--ttfparser.go50
1 files changed, 28 insertions, 22 deletions
diff --git a/ttfparser.go b/ttfparser.go
index 3df633c..669ab4d 100644
--- a/ttfparser.go
+++ b/ttfparser.go
@@ -89,28 +89,8 @@ func TtfParse(fileStr string) (TtfRec TtfType, err error) {
t.Skip(4) // length
t.tables[tag] = offset
}
- if err = t.ParseHead(); err != nil {
- return
- }
- if err = t.ParseHhea(); err != nil {
- return
- }
- if err = t.ParseMaxp(); err != nil {
- return
- }
- if err = t.ParseHmtx(); err != nil {
- return
- }
- if err = t.ParseCmap(); err != nil {
- return
- }
- if err = t.ParseName(); err != nil {
- return
- }
- if err = t.ParseOS2(); err != nil {
- return
- }
- if err = t.ParsePost(); err != nil {
+ err = t.ParseComponents()
+ if err != nil {
return
}
t.f.Close()
@@ -118,6 +98,32 @@ func TtfParse(fileStr string) (TtfRec TtfType, err error) {
return
}
+func (t *ttfParser) ParseComponents() (err error) {
+ err = t.ParseHead()
+ if err == nil {
+ err = t.ParseHhea()
+ if err == nil {
+ err = t.ParseMaxp()
+ if err == nil {
+ err = t.ParseHmtx()
+ if err == nil {
+ err = t.ParseCmap()
+ if err == nil {
+ err = t.ParseName()
+ if err == nil {
+ err = t.ParseOS2()
+ if err == nil {
+ err = t.ParsePost()
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ return
+}
+
func (t *ttfParser) ParseHead() (err error) {
err = t.Seek("head")
t.Skip(3 * 4) // version, fontRevision, checkSumAdjustment