* lib/strtod.c (strtod): Address a couple quirks in the z/OS
implementation.
strtod: port to z/OS
* lib/strtod.c (strtod): Address a couple quirks in the z/OS
implementation.
+2016-08-17 Daniel Richard G. <skunk@iSKUNK.ORG>
+
+ strtod: port to z/OS
+ * lib/strtod.c (strtod): Address a couple quirks in the z/OS
+ implementation.
+
2016-08-17 Paul Eggert <eggert@cs.ucla.edu>
+ strtod: port to z/OS
+ * lib/strtod.c (strtod): Address a couple quirks in the z/OS
+ implementation.
+
regex, string: rename to avoid '__string'
* lib/regex.h, lib/string.in.h: Do not use the identifier
'__string', as it is effectively reserved by string.h on z/OS.
if (*s == '0' && c_tolower (s[1]) == 'x')
{
if (! c_isxdigit (s[2 + (s[2] == '.')]))
- end = s + 1;
+ {
+ end = s + 1;
+
+ /* strtod() on z/OS returns ERANGE for "0x". */
+ errno = 0;
+ }
else if (end <= s + 2)
{
num = parse_number (s + 2, 16, 2, 4, 'p', &endbuf);
better to use the underlying implementation's result, since a
nice implementation populates the bits of the NaN according
to interpreting n-char-sequence as a hexadecimal number. */
- if (s != end)
+ if (s != end || num == num)
num = NAN;
errno = saved_errno;
}