diff --git a/ChangeLog b/ChangeLog index 8b2d92064..108eb4210 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2008-11-27 Werner Lemberg + + * src/cff/cffparse.c (cff_parse_real): Handle more than nine + significant digits correctly. This fixes Savannah bug #24953. + 2008-11-25 Daniel Zimmermann * src/base/ftstream.c (FT_Stream_ReadFields): Don't access stream diff --git a/src/cff/cffparse.c b/src/cff/cffparse.c index 7347bdb5b..524d80cf8 100644 --- a/src/cff/cffparse.c +++ b/src/cff/cffparse.c @@ -355,6 +355,12 @@ if ( FT_ABS( integer_length ) > 5 ) goto Exit; + /* Remove non-significant digits. */ + if ( integer_length < 0 ) { + number /= power_tens[-integer_length]; + fraction_length += integer_length; + } + /* Convert into 16.16 format. */ if ( fraction_length > 0 ) {