diff --git a/ChangeLog b/ChangeLog index e8060cb09..a34f8e8eb 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,8 +1,16 @@ +2012-03-10 Werner Lemberg + + [truetype] Fix SSW instruction. + + * src/truetype/ttinterp.c (DO_SSW): SSW *does* use font units. For + verification, it took some time to find a font which actually uses + this instruction. + 2012-03-09 Vinnie Falco Prepare source code for amalgamation. - * include\freetype\freetype.h: Swap order of preprocessor blocks. + * include/freetype/freetype.h: Swap order of preprocessor blocks. 2012-03-08 Werner Lemberg @@ -46,14 +54,14 @@ Prepare source code for amalgamation. - * src\autofit\aferrors.h, src\bdf\bdferror.h, src\bzip2\ftbzip2.c, - src\cache\ftcerror.h, src\cff\cfferrs.h, src\cid\ciderrs.h, - src\gxvalid\gxverror.h, src\gzip\ftgzip.c, src\lzw\ftlzw.c, - src\otvalid\otverror.h, src\pcf\pcferror.h, src\pfr\pfrerror.h, - src\psaux\psauxerr.h, src\pshinter\pshnterr.h, - src\psnames\psnamerr.h, src\raster\rasterrs.h, src\sfnt\sferrors.h, - src\smooth\ftsmerrs.h, src\truetype\tterrors.h, - src\type1\t1errors.h, src\type42\t42error.h, src\winfonts\fnterrs.h: + * src/autofit/aferrors.h, src/bdf/bdferror.h, src/bzip2/ftbzip2.c, + src/cache/ftcerror.h, src/cff/cfferrs.h, src/cid/ciderrs.h, + src/gxvalid/gxverror.h, src/gzip/ftgzip.c, src/lzw/ftlzw.c, + src/otvalid/otverror.h, src/pcf/pcferror.h, src/pfr/pfrerror.h, + src/psaux/psauxerr.h, src/pshinter/pshnterr.h, + src/psnames/psnamerr.h, src/raster/rasterrs.h, src/sfnt/sferrors.h, + src/smooth/ftsmerrs.h, src/truetype/tterrors.h, + src/type1/t1errors.h, src/type42/t42error.h, src/winfonts/fnterrs.h: Add #undef FT_ERR_PREFIX before #define FT_ERR_PREFIX. 2012-03-03 Werner Lemberg diff --git a/src/truetype/ttinterp.c b/src/truetype/ttinterp.c index 3acb24a2f..80c38ade4 100644 --- a/src/truetype/ttinterp.c +++ b/src/truetype/ttinterp.c @@ -3110,14 +3110,9 @@ CUR.GS.single_width_cutin = (FT_F26Dot6)args[0]; - /* XXX: UNDOCUMENTED! or bug in the Windows engine? */ - /* */ - /* It seems that the value that is read here is */ - /* expressed in 16.16 format rather than in font */ - /* units. */ - /* */ -#define DO_SSW \ - CUR.GS.single_width_value = (FT_F26Dot6)( args[0] >> 10 ); +#define DO_SSW \ + CUR.GS.single_width_value = TT_MULFIX( args[0], \ + CUR.tt_metrics.scale ); #define DO_FLIPON \