Commit Graph

30 Commits

Author SHA1 Message Date
David Chisnall
3c87aa1d3d Implement xlocale APIs from Darwin, mainly for use by libc++. This adds a
load of _l suffixed versions of various standard library functions that use
the global locale, making them take an explicit locale parameter.  Also
adds support for per-thread locales.  This work was funded by the FreeBSD
Foundation.

Please test any code you have that uses the C standard locale functions!

Reviewed by:    das (gdtoa changes)
Approved by:    dim (mentor)
2011-11-20 14:45:42 +00:00
David Schultz
50dad48bb7 Merge gdtoa-20110304. 2011-03-12 07:03:06 +00:00
Ulrich Spörlein
cf7d8dea39 Add required header for isalnum(3) to quench compiler warnings
Forgotten in:	r174678
Submitted by:	Alexander Best alexbestms at wwu.de
Approved by:	das
2010-06-02 18:31:04 +00:00
Attilio Rao
dcc3a33188 Import a vendor fix for a list overrun.
This has been considered as a security hole on some specialized ml,
but currently the secteam@ doesn't consider that way.

Reviewed by:	emaste, des
Sponsored by:	Sandvine Incorporated
MFC after:	3 days
2009-09-07 09:30:37 +00:00
David Schultz
0a706446ba Remove some unused vendor files. 2009-03-04 03:45:02 +00:00
David Schultz
4848dd0858 Vendor import of gdtoa 20081205. 2009-01-28 04:36:34 +00:00
David Schultz
9fb02073a3 Make strtof() respect the current rounding mode. 2008-09-03 07:32:06 +00:00
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