Revert erroneously checked in files.
This commit is contained in:
parent
7ca98b4901
commit
f6e29e076a
@ -35,7 +35,10 @@ THIS SOFTWARE.
|
||||
#include "mprec.h"
|
||||
#include "gdtoa.h"
|
||||
#include "gd_qnan.h"
|
||||
|
||||
#ifdef USE_LOCALE
|
||||
#include "locale.h"
|
||||
#endif
|
||||
|
||||
unsigned char hexdig[256];
|
||||
|
||||
@ -148,10 +151,11 @@ _DEFUN(gethex, (ptr, sp, fpi, exp, bp, sign),
|
||||
int esign, havedig, irv, k, n, nbits, up, zret;
|
||||
__ULong L, lostbits, *x;
|
||||
Long e, e1;
|
||||
unsigned char *decimalpoint = (unsigned char *)
|
||||
localeconv()->decimal_point;
|
||||
size_t decp_len = strlen ((const char *) decimalpoint);
|
||||
unsigned char decp_end = decimalpoint[decp_len - 1];
|
||||
#ifdef USE_LOCALE
|
||||
unsigned char decimalpoint = *localeconv()->decimal_point;
|
||||
#else
|
||||
#define decimalpoint '.'
|
||||
#endif
|
||||
|
||||
if (!hexdig['0'])
|
||||
hexdig_init();
|
||||
@ -166,9 +170,9 @@ _DEFUN(gethex, (ptr, sp, fpi, exp, bp, sign),
|
||||
e = 0;
|
||||
if (!hexdig[*s]) {
|
||||
zret = 1;
|
||||
if (strcmp ((const char *) s, (const char *) decimalpoint) != 0)
|
||||
if (*s != decimalpoint)
|
||||
goto pcheck;
|
||||
decpt = (s += decp_len);
|
||||
decpt = ++s;
|
||||
if (!hexdig[*s])
|
||||
goto pcheck;
|
||||
while(*s == '0')
|
||||
@ -180,9 +184,8 @@ _DEFUN(gethex, (ptr, sp, fpi, exp, bp, sign),
|
||||
}
|
||||
while(hexdig[*s])
|
||||
s++;
|
||||
if (strcmp ((const char *) s, (const char *) decimalpoint) == 0
|
||||
&& !decpt) {
|
||||
decpt = (s += decp_len);
|
||||
if (*s == decimalpoint && !decpt) {
|
||||
decpt = ++s;
|
||||
while(hexdig[*s])
|
||||
s++;
|
||||
}
|
||||
@ -223,12 +226,8 @@ _DEFUN(gethex, (ptr, sp, fpi, exp, bp, sign),
|
||||
n = 0;
|
||||
L = 0;
|
||||
while(s1 > s0) {
|
||||
if (*--s1 == decp_end && s1 - decp_len + 1 >= s0
|
||||
&& strcmp ((const char *) s1 - decp_len + 1,
|
||||
(const char *) decimalpoint) == 0) {
|
||||
s1 -= decp_len - 1; /* Note the --s1 above! */
|
||||
if (*--s1 == decimalpoint)
|
||||
continue;
|
||||
}
|
||||
if (n == 32) {
|
||||
*x++ = L;
|
||||
L = 0;
|
||||
|
@ -122,7 +122,9 @@ THIS SOFTWARE.
|
||||
/* #include <fenv.h> */
|
||||
/* #endif */
|
||||
|
||||
#ifdef USE_LOCALE
|
||||
#include "locale.h"
|
||||
#endif
|
||||
|
||||
#ifdef IEEE_Arith
|
||||
#ifndef NO_IEEE_Scale
|
||||
@ -305,10 +307,14 @@ _DEFUN (_strtod_r, (ptr, s00, se),
|
||||
else if (nd < 16)
|
||||
z = 10*z + c - '0';
|
||||
nd0 = nd;
|
||||
if (strcmp (s, localeconv()->decimal_point) == 0)
|
||||
#ifdef USE_LOCALE
|
||||
if (c == *localeconv()->decimal_point)
|
||||
#else
|
||||
if (c == '.')
|
||||
#endif
|
||||
{
|
||||
decpt = 1;
|
||||
c = *(s += strlen (localeconv()->decimal_point));
|
||||
c = *++s;
|
||||
if (!nd) {
|
||||
for(; c == '0'; c = *++s)
|
||||
nz++;
|
||||
|
@ -116,10 +116,8 @@ Supporting OS subroutines required: <<close>>, <<fstat>>, <<isatty>>,
|
||||
#include <_ansi.h>
|
||||
#include <errno.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <wchar.h>
|
||||
#include <wctype.h>
|
||||
#include <locale.h>
|
||||
#include <math.h>
|
||||
|
||||
double
|
||||
@ -169,25 +167,9 @@ _DEFUN (_wcstod_r, (ptr, nptr, endptr),
|
||||
* where it ended, count multibyte characters to find the
|
||||
* corresponding position in the wide char string.
|
||||
*/
|
||||
if (endptr != NULL) {
|
||||
/* The only valid multibyte char in a float converted by
|
||||
strtod/wcstod is the radix char. What we do here is,
|
||||
figure out if the radix char was in the valid leading
|
||||
float sequence in the incoming string. If so, the
|
||||
multibyte float string is strlen(radix char) - 1 bytes
|
||||
longer than the incoming wide char string has characters.
|
||||
To fix endptr, reposition end as if the radix char was
|
||||
just one byte long. The resulting difference (end - buf)
|
||||
is then equivalent to the number of valid wide characters
|
||||
in the input string. */
|
||||
len = strlen (localeconv ()->decimal_point);
|
||||
if (len > 1) {
|
||||
char *d = strstr (buf, localeconv ()->decimal_point);
|
||||
if (d && d < end)
|
||||
end -= len - 1;
|
||||
}
|
||||
if (endptr != NULL)
|
||||
/* XXX Assume each wide char is one byte. */
|
||||
*endptr = (wchar_t *)nptr + (end - buf);
|
||||
}
|
||||
|
||||
_free_r(ptr, buf);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user