>> presumably work right.
> I like your first suggestion better.
Look at this output from another font (ztm-Reg):
T1_Load_Glyph: glyph index 86 | cff_glyph_load: glyph index 86
Initial hintmap Initial hintmap
csCoord dsCoord scale flags csCoord dsCoord scale flags
0.00 0.00 655 gbLS | -10.00 0.00 655 pbL
> 48.00 58.00 655 ptL
436.00 486.27 655 pbL 436.00 486.27 655 pbL
450.00 500.27 655 ptL 450.00 500.27 655 ptL
(adjusted) (adjusted)
csCoord dsCoord scale flags csCoord dsCoord scale flags
0.00 0.00 731 gbLS | -10.00 0.00 655 pbL
> 48.00 52.54 723 ptL
436.00 486.27 655 pbL 436.00 486.27 655 pbL
450.00 500.27 655 ptL 450.00 500.27 655 ptL
Hints: Hints:
csCoord dsCoord scale flags csCoord dsCoord scale flags
36.00 40.99 655 pb | 36.00 46.00 655 pb
50.00 54.99 655 pt | 50.00 60.00 655 pt
436.00 486.27 655 pbL 436.00 486.27 655 pbL
450.00 500.27 655 ptL 450.00 500.27 655 ptL
(adjusted) (adjusted)
csCoord dsCoord scale flags csCoord dsCoord scale flags
36.00 0.00 655 pb | 36.00 86.05 655 pb
50.00 11.45 801 pt | 50.00 100.05 655 pt
436.00 486.27 655 pbL 436.00 486.27 655 pbL
450.00 500.27 655 ptL 450.00 500.27 655 ptL
Hints: Hints:
csCoord dsCoord scale flags csCoord dsCoord scale flags
-10.00 0.00 655 pbL -10.00 0.00 655 pbL
48.00 58.00 655 ptL 48.00 58.00 655 ptL
436.00 486.27 655 pbL 436.00 486.27 655 pbL
450.00 500.27 655 ptL 450.00 500.27 655 ptL
(adjusted) (adjusted)
csCoord dsCoord scale flags csCoord dsCoord scale flags
-10.00 0.00 655 pbL -10.00 0.00 655 pbL
48.00 52.54 723 ptL 48.00 52.54 723 ptL
436.00 486.27 655 pbL 436.00 486.27 655 pbL
450.00 500.27 655 ptL 450.00 500.27 655 ptL
Hints: Hints:
csCoord dsCoord scale flags csCoord dsCoord scale flags
36.00 40.99 655 pb | 36.00 86.05 655 pbL
50.00 54.99 655 pt | 50.00 100.05 655 ptL
436.00 486.27 655 pbL 436.00 486.27 655 pbL
450.00 500.27 655 ptL 450.00 500.27 655 ptL
(adjusted) (adjusted)
csCoord dsCoord scale flags csCoord dsCoord scale flags
36.00 0.00 655 pb | 36.00 86.05 655 pbL
50.00 11.45 801 pt | 50.00 100.05 655 ptL
436.00 486.27 655 pbL 436.00 486.27 655 pbL
450.00 500.27 655 ptL 450.00 500.27 655 ptL
ptsize =10 ptsize =10
Execution completed successfully. Execution completed successfully.
The initial hintmap is wrong, affecting the first set of hints. Because the
(-10,48) pair is not in the first hint group, but is in a blue zone (hence
locked and in the initial map). For Type 1, the interpreter cannot know this
until later in the charstring when that pair is actually inserted, and hence
cannot possibly build the correct initial hintmap unless a preliminary pass
is made to collate all the hints.