]> git.eshelyaron.com Git - emacs.git/commit
Properly instruct Italic Arial or BS Mono at small PPEM sizes
authorPo Lu <luangruo@yahoo.com>
Mon, 8 Jan 2024 07:32:07 +0000 (15:32 +0800)
committerEshel Yaron <me@eshelyaron.com>
Mon, 8 Jan 2024 21:54:23 +0000 (22:54 +0100)
commit99e9f2ba7bc1c903fa28acfa8144a1091c2c0e6c
treed72e98cb4f30e5565062f1cee8dbdc210f2d08d5
parentdc69122c13c7e4a0bafa5b6672b2bc2754665370
Properly instruct Italic Arial or BS Mono at small PPEM sizes

* src/sfnt.c (sfnt_read_simple_glyph): Correct alignment errors.
(PUSH2_UNCHECKED): Don't shift negative signed value to the
left.
(SLOOP): Permit LOOP to be set to 0, which inhibits the
execution of instructions it affects.
(sfnt_address_zp2, sfnt_address_zp1, sfnt_address_zp0): Permit X
and Y to be NULL.
(sfnt_dot_fix_14): Guarantee that the final value is rounded to
negative infinity, not zero.
(sfnt_project_zp1_zp0_org): New function.
(sfnt_interpret_mdrp): Avoid rounding issues by computing
original distance from unscaled coordinates, if at all possible.
(sfnt_interpret_simple_glyph, sfnt_interpret_compound_glyph_2):
Set zone->simple.
(all_tests) <LOOP>: Update test.
(sfnt_identify_instruction, main): Adjust tests.

* src/sfnt.h (struct sfnt_interpreter_zone): New field simple.

(cherry picked from commit 2656d756851d97434da7846a5a30202baafb2241)
src/sfnt.c
src/sfnt.h