summaryrefslogtreecommitdiff
path: root/ttfparser.go
diff options
context:
space:
mode:
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