From c7597edb6ac7c64064b74f78f314007ce9579f3a Mon Sep 17 00:00:00 2001 From: Werner Lemberg Date: Thu, 27 Nov 2008 21:55:20 +0000 Subject: [PATCH] * src/cff/cffparse.c (cff_parse_real): Handle more than nine significant digits correctly. This fixes Savannah bug #24953. --- ChangeLog | 5 +++++ src/cff/cffparse.c | 6 ++++++ 2 files changed, 11 insertions(+) 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 ) {