diff --git a/fontland/fontland/directory.rkt b/fontland/fontland/directory.rkt index 06e31230..d816712c 100644 --- a/fontland/fontland/directory.rkt +++ b/fontland/fontland/directory.rkt @@ -30,13 +30,13 @@ https://github.com/mbutterick/fontkit/blob/master/src/tables/directory.js (define (directory-post-decode this-res) (define new-tables-val (mhash)) - (for ([table (in-list (· this-res tables))]) - (hash-set! new-tables-val (escape-tag (· table tag)) table)) + (for ([table (in-list (hash-ref this-res 'tables))]) + (hash-set! new-tables-val (escape-tag (hash-ref table 'tag)) table)) (dict-set! this-res 'tables new-tables-val) this-res) (define (directory-pre-encode this-val) - (define tables (for/list ([(tag table) (in-hash (· this-val tables))]) + (define tables (for/list ([(tag table) (in-hash (hash-ref this-val 'tables))]) (define table-codec (hash-ref table-codecs tag)) (mhash 'tag (unescape-tag tag) 'checkSum 0 diff --git a/fontland/fontland/subset.rkt b/fontland/fontland/subset.rkt index c2a13a30..03aafe87 100644 --- a/fontland/fontland/subset.rkt +++ b/fontland/fontland/subset.rkt @@ -84,8 +84,8 @@ https://github.com/mbutterick/fontkit/blob/master/src/subset/TTFSubset.js (define glyf-bytes (read-bytes (- next-offset this-offset) port)) ;; if it is a compound glyph, include its components - (when (and ttf-glyf-data (negative? (· ttf-glyf-data numberOfContours))) - (for ([ttf-glyph-component (in-list (· ttf-glyf-data components))]) + (when (and ttf-glyf-data (negative? (hash-ref ttf-glyf-data 'numberOfContours))) + (for ([ttf-glyph-component (in-list (hash-ref ttf-glyf-data 'components))]) (define gid (subset-add-glyph! ss (ttf-glyph-component-glyph-id ttf-glyph-component))) ;; note: this (ttf-glyph-component-pos component) is correct. It's a field of a Component object, not a port (bytes-copy! glyf-bytes (ttf-glyph-component-pos ttf-glyph-component) (encode uint16be gid #f)))) @@ -97,7 +97,7 @@ https://github.com/mbutterick/fontkit/blob/master/src/subset/TTFSubset.js (hash-update! (ttf-subset-hmtx ss) 'metrics (λ (ms) (append ms (list (mhash 'advance (glyph-advance-width glyph) - 'bearing (· (get-glyph-metrics glyph) leftBearing)))))) + 'bearing (hash-ref (get-glyph-metrics glyph) 'leftBearing)))))) (set-ttf-subset-offset! ss (+ (ttf-subset-offset ss) (bytes-length glyf-bytes))) (sub1 (length (ttf-subset-glyf ss)))) diff --git a/fontland/fontland/table-stream.rkt b/fontland/fontland/table-stream.rkt index 5285bd59..5ffc18cd 100644 --- a/fontland/fontland/table-stream.rkt +++ b/fontland/fontland/table-stream.rkt @@ -21,7 +21,7 @@ (define (has-table? this tag) #;((or/c bytes? symbol?) . ->m . boolean?) (define directory (force (ttf-font-directory this))) - (hash-has-key? (· directory tables) (match tag + (hash-has-key? (hash-ref directory 'tables) (match tag [(? bytes?) (string->symbol (bytes->string/latin-1 tag))] [_ tag]))) @@ -34,17 +34,17 @@ (define (get-table-stream this tag) (define directory (force (ttf-font-directory this))) - (define table (hash-ref (· directory tables) tag)) - (and table (pos (ttf-font-port this) (· table offset)) (ttf-font-port this))) + (define table (hash-ref (hash-ref directory 'tables) tag)) + (and table (pos (ttf-font-port this) (hash-ref table 'offset)) (ttf-font-port this))) (define (decode-table this table-tag) (unless (hash-has-key? table-codecs table-tag) (raise-argument-error 'decode-table "decodable table" table-tag)) (define directory (force (ttf-font-directory this))) - (define table (hash-ref (· directory tables) table-tag)) + (define table (hash-ref (hash-ref directory 'tables) table-tag)) ;; todo: possible to avoid copying the bytes here? - (pos (ttf-font-port this) (· table offset)) - (define table-bytes (open-input-bytes (peek-bytes (· table length) 0 (ttf-font-port this)))) + (pos (ttf-font-port this) (hash-ref table 'offset)) + (define table-bytes (open-input-bytes (peek-bytes (hash-ref table 'length) 0 (ttf-font-port this)))) (define table-decoder (hash-ref table-codecs table-tag)) (decode table-decoder table-bytes #:parent this)) diff --git a/fontland/fontland/ttf-glyph.rkt b/fontland/fontland/ttf-glyph.rkt index e418e25e..52b9fc41 100644 --- a/fontland/fontland/ttf-glyph.rkt +++ b/fontland/fontland/ttf-glyph.rkt @@ -108,7 +108,7 @@ https://github.com/mbutterick/fontkit/blob/master/src/glyph/TTFGlyph.js (pos port (+ (pos port) glyfPos)) (define startPos (pos port)) (define glyph-data (decode GlyfHeader port)) - (match (· glyph-data numberOfContours) + (match (hash-ref glyph-data 'numberOfContours) [(? positive?) (decode-simple glyph-data port)] [(? negative?) (decode-composite glyph-data port startPos)]) glyph-data))) @@ -122,7 +122,7 @@ https://github.com/mbutterick/fontkit/blob/master/src/glyph/TTFGlyph.js ;; this is a simple glyph (dict-set! glyph-data 'points empty) - (define endpts-of-contours (decode (x:array #:type uint16be #:length (· glyph-data numberOfContours)) port)) + (define endpts-of-contours (decode (x:array #:type uint16be #:length (hash-ref glyph-data 'numberOfContours)) port)) (dict-set! glyph-data 'instructions (decode (x:array #:type uint8be #:length uint16be) port)) (define num-coords (add1 (last endpts-of-contours)))