From 1c5247109d620c17e16b645d8356b50355065a12 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Wed, 19 Feb 2003 08:45:03 +0000 Subject: [PATCH] Update. 2003-02-19 Ulrich Drepper * stdlib/strtod.c (INTERNAL): Up the safety margin for cutting of decimal input digits. --- ChangeLog | 5 +++++ stdlib/strtod.c | 8 ++++---- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index 638a35d..8c55380 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2003-02-19 Ulrich Drepper + + * stdlib/strtod.c (INTERNAL): Up the safety margin for cutting of + decimal input digits. + 2003-02-18 Ulrich Drepper * sysdeps/unix/sysv/linux/ttyname_r.c (__ttyname_r): Recognize diff --git a/stdlib/strtod.c b/stdlib/strtod.c index 63a3a97..45e5abf 100644 --- a/stdlib/strtod.c +++ b/stdlib/strtod.c @@ -1,6 +1,6 @@ /* Read decimal floating point numbers. This file is part of the GNU C Library. - Copyright (C) 1995,96,97,98,99,2000,01,02 Free Software Foundation, Inc. + Copyright (C) 1995-2002, 2003 Free Software Foundation, Inc. Contributed by Ulrich Drepper , 1995. The GNU C Library is free software; you can redistribute it and/or @@ -1191,10 +1191,10 @@ INTERNAL (STRTOF) (nptr, endptr, group LOCALE_PARAM) ceil(BITS / 3) =: N digits we should have enough bits for the result. The remaining decimal digits give us the information that more bits are following. - This can be used while rounding. (One added as a safety margin.) */ - if (dig_no - int_no > (MANT_DIG - bits + 2) / 3 + 1) + This can be used while rounding. (Two added as a safety margin.) */ + if (dig_no - int_no > (MANT_DIG - bits + 2) / 3 + 2) { - dig_no = int_no + (MANT_DIG - bits + 2) / 3 + 1; + dig_no = int_no + (MANT_DIG - bits + 2) / 3 + 2; more_bits = 1; } else -- 2.7.4