diff options
author | Werner Lemberg <wl@gnu.org> | 2011-01-18 07:35:26 +0100 |
---|---|---|
committer | Werner Lemberg <wl@gnu.org> | 2011-01-18 07:35:26 +0100 |
commit | dcdb3167dcd4bd3ffc98b47062109e6b2fca1272 (patch) | |
tree | bfb93ad8fcd23fac5200bcd40f578e51c4e572b4 /src | |
parent | 17f54bc66c514f9fd9aad7952d0f768b30ef1466 (diff) |
[truetype] Fix handling of MIRP instruction.
Thanks to Greg Hitchcock who explained the issue.
* src/truetype/ttinterp.c (Ins_MIRP): Replace a `>=' operator with
`>' since the description in the specification is incorrect.
This fixes, for example, glyph `two' in font `Helvetica Neue LT Com
65 medium' at 15ppem.
Diffstat (limited to 'src')
-rw-r--r-- | src/truetype/ttinterp.c | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/src/truetype/ttinterp.c b/src/truetype/ttinterp.c index f55b8eea..2ae7a4d6 100644 --- a/src/truetype/ttinterp.c +++ b/src/truetype/ttinterp.c @@ -6244,8 +6244,22 @@ /* refer to the same zone. */ if ( CUR.GS.gep0 == CUR.GS.gep1 ) - if ( FT_ABS( cvt_dist - org_dist ) >= CUR.GS.control_value_cutin ) + { + /* XXX: According to Greg Hitchcock, the following wording is */ + /* the right one: */ + /* */ + /* When the absolute difference between the value in */ + /* the table [CVT] and the measurement directly from */ + /* the outline is _greater_ than the cut_in value, the */ + /* outline measurement is used. */ + /* */ + /* This is from `instgly.doc'. The description in */ + /* `ttinst2.doc', version 1.66, is thus incorrect since */ + /* it implies `>=' instead of `>'. */ + + if ( FT_ABS( cvt_dist - org_dist ) > CUR.GS.control_value_cutin ) cvt_dist = org_dist; + } distance = CUR_Func_round( cvt_dist, |