diff options
author | Po Lu <luangruo@yahoo.com> | 2024-01-08 15:32:07 +0800 |
---|---|---|
committer | Po Lu <luangruo@yahoo.com> | 2024-01-08 15:51:51 +0800 |
commit | 2656d756851d97434da7846a5a30202baafb2241 (patch) | |
tree | 9f980e028ad0ace01145cac8686f39272aa126dc /src/sfnt.h | |
parent | c946efe7b3778302cd64442b451f806f4be7e78e (diff) | |
download | emacs-2656d756851d97434da7846a5a30202baafb2241.tar.gz |
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.
Diffstat (limited to 'src/sfnt.h')
-rw-r--r-- | src/sfnt.h | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/sfnt.h b/src/sfnt.h index 2b92f9f540a..5b01270e8ce 100644 --- a/src/sfnt.h +++ b/src/sfnt.h @@ -1759,6 +1759,10 @@ struct sfnt_interpreter_zone /* Pointer to the flags associated with this data. */ unsigned char *flags; + + /* If this structure was produced from a simple glyph, pointer to + the simple glyph itself. NULL otherwise. */ + struct sfnt_simple_glyph *simple; }; enum |