Commit Graph

23 Commits

Author SHA1 Message Date
David Schultz
ae2cbf4c64 Merge gdtoa 20080831. This fixes several bugs, including an infinite
loop pointed out by cognet@ that occurs when calling strtod() with a
string representing a number between DBL_MAX and 2*DBL_MAX, when the
rounding mode is anything other than the default.
2008-09-03 07:23:57 +00:00
David Schultz
1d35705154 Flatten vendor/gdtoa/*. 2008-09-03 05:17:02 +00:00
David Schultz
c713eaa603 Bring in the vendor's fix for a bug in strtod() whereby
strtod("0xyz", &endp) resulted in endp pointing to "0xyz"
instead of "xyz".

Reported by:	Tony Finch <dot@dotat.at>
MFC after:	1 week
2008-06-21 19:27:54 +00:00
David Schultz
9cb4166881 On platforms where long is 64 bits, make sure gdtoa doesn't use a
long when it really wants an int.
2007-12-17 00:19:49 +00:00
David Schultz
fb048cca0c Fix previous commit: We should only mask the top bit in the STRTOG_NaNBits
case, not the STRTOG_Normal case.
2007-12-16 23:31:55 +00:00
David Schultz
10a381e55a Fix strto{f,d,ld}() so they don't return signaling NaNs. C99
says they are never supposed to, and the fact that they did could
cause apps that run with unmasked FP exceptions to SIGFPE after a
scanf() or strtod(). The vendor stated that he will not be fixing
this, citing portability concerns.
2007-12-16 21:14:33 +00:00
David Schultz
2ca7a12a81 Some changes the vendor didn't want:
- Accept the '0x' prefix so strtod("nan(0x...)", NULL) returns the same
  thing as gcc's builtin nan("0x...") for such strings.
- Don't return uninitialized memory.
- Finish processing the string up to the closing ')' (provided it's
  lexically valid) for compatibility with C99 and *scanf().
2007-12-16 21:13:54 +00:00
David Schultz
273147031f Merge local diffs. 2007-01-03 04:59:33 +00:00
David Schultz
c88250a57d Import of the latest gdtoa sources, which include fixes for minor
problems relating to NaNs and rounding.
2007-01-03 04:58:54 +00:00
David Schultz
963e8efffe This commit was generated by cvs2svn to compensate for changes in r165743,
which included commits to RCS files with non-trunk default branches.
2007-01-03 04:58:54 +00:00
David Schultz
ba54cdcdda Configure gdtoa so that floating-point numbers are correctly rounded
when they are printed in non-default rounding modes.
2005-01-18 18:56:18 +00:00
David Schultz
19927830ac Import gdtoa 20040118. This revision addresses some corner cases in
denormal and locale handling in strtod().
2004-01-19 05:14:12 +00:00
David Schultz
52ec752989 This commit was generated by cvs2svn to compensate for changes in r124703,
which included commits to RCS files with non-trunk default branches.
2004-01-19 05:14:12 +00:00
David Schultz
d086ded323 Userland spinlocks bad. Sleep locks good.
Use the latter for gdtoa.

Requested by:	deischen (far too long ago)
2003-06-21 08:20:14 +00:00
David Schultz
6836976246 Add some missing prototypes to eliminate some warnings. These already
appear without leading underscores in gdtoa.h, but this approach avoids
removing that file from the vendor branch and unduly rearranging things.

Prodded by:	nectar
2003-04-09 06:04:35 +00:00
David Schultz
628f583ce9 Add missing prototype for gdtoa(). 2003-04-05 22:09:26 +00:00
David Schultz
8f7c2af436 Import new sources. The only material change in this update is to
add locale support for hexadecimal floating point conversions.

Noticed by:	ache
Reviewed by:	mike (mentor)
2003-03-25 17:55:07 +00:00
David Schultz
ec3a1a66aa This commit was generated by cvs2svn to compensate for changes in r112620,
which included commits to RCS files with non-trunk default branches.
2003-03-25 17:55:07 +00:00
David Schultz
1dd3a3db1d Enable locale support in strtod() and dtoa().
Noticed by:	ache
Reviewed by:	mike (mentor)
2003-03-19 20:25:45 +00:00
David Schultz
84781d47e6 Import gdtoa sources dated 20030318, which contain several locale fixes.
Reviewed by:	mike (mentor)
2003-03-19 20:23:29 +00:00
David Schultz
e8b59c3f5d This commit was generated by cvs2svn to compensate for changes in r112415,
which included commits to RCS files with non-trunk default branches.
2003-03-19 20:23:29 +00:00
David Schultz
de9840c6e5 Local patches:
- include extra system headers and add appropriate #defines
- use a spinlock to synchronize parts of gdtoa
- protect exported symbols with leading underscores

Reviewed by:	bde (briefly), mike (mentor), obrien
2003-03-12 20:20:22 +00:00
David Schultz
cc36ccd13b Initial import of David Gay's gdtoa library for conversion between
strings and floating point.
2003-03-12 20:18:32 +00:00