1999-10-29  Ulrich Drepper  <drepper@cygnus.com>

	* stdlib/strtod.c: Handle hexadecimal numbers with leading digit
	!= 1 correctly.
This commit is contained in:
Ulrich Drepper 1999-10-29 23:53:04 +00:00
parent f720d3d212
commit c603b15b44
2 changed files with 12 additions and 0 deletions

View File

@ -1,3 +1,8 @@
1999-10-29 Ulrich Drepper <drepper@cygnus.com>
* stdlib/strtod.c: Handle hexadecimal numbers with leading digit
!= 1 correctly.
1999-10-27 Andreas Jaeger <aj@suse.de>
* sysdeps/generic/ifreq.h: New file.

View File

@ -797,11 +797,15 @@ INTERNAL (STRTOF) (nptr, endptr, group LOCALE_PARAM)
while (!ISXDIGIT (*startp))
++startp;
while (*startp == L_('0'))
++startp;
if (ISDIGIT (*startp))
val = *startp++ - L_('0');
else
val = 10 + TOLOWER (*startp++) - L_('a');
bits = nbits[val];
/* We cannot have a leading zero. */
assert (bits != 0);
if (pos + 1 >= 4 || pos + 1 >= bits)
{
@ -819,6 +823,9 @@ INTERNAL (STRTOF) (nptr, endptr, group LOCALE_PARAM)
pos = BITS_PER_MP_LIMB - 1 - (bits - pos - 1);
}
/* Adjust the exponent for the bits we are shifting in. */
exponent += bits - 1;
while (--dig_no > 0 && idx >= 0)
{
while (!ISXDIGIT (*startp))