diff options
Diffstat (limited to 'ttfparser.go')
-rw-r--r-- | ttfparser.go | 50 |
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 |