|  | Index: dtoa.cc | 
|  | --- dtoa.cc    (old copy) | 
|  | +++ dtoa.cc    (working copy) | 
|  | @@ -179,6 +179,9 @@ | 
|  | *	used for input more than STRTOD_DIGLIM digits long (default 40). | 
|  | */ | 
|  |  | 
|  | +#define IEEE_8087 | 
|  | +#define NO_HEX_FP | 
|  | + | 
|  | #ifndef Long | 
|  | #define Long long | 
|  | #endif | 
|  | @@ -280,9 +283,7 @@ | 
|  | #include "math.h" | 
|  | #endif | 
|  |  | 
|  | -#ifdef __cplusplus | 
|  | -extern "C" { | 
|  | -#endif | 
|  | +namespace dmg_fp { | 
|  |  | 
|  | #ifndef CONST | 
|  | #ifdef KR_headers | 
|  | @@ -511,11 +512,9 @@ | 
|  |  | 
|  | #define Kmax 7 | 
|  |  | 
|  | -#ifdef __cplusplus | 
|  | -extern "C" double strtod(const char *s00, char **se); | 
|  | -extern "C" char *dtoa(double d, int mode, int ndigits, | 
|  | +double strtod(const char *s00, char **se); | 
|  | +char *dtoa(double d, int mode, int ndigits, | 
|  | int *decpt, int *sign, char **rve); | 
|  | -#endif | 
|  |  | 
|  | struct | 
|  | Bigint { | 
|  | @@ -1527,7 +1526,7 @@ | 
|  | #ifdef KR_headers | 
|  | (sp, t) char **sp, *t; | 
|  | #else | 
|  | -	(CONST char **sp, char *t) | 
|  | +	(CONST char **sp, CONST char *t) | 
|  | #endif | 
|  | { | 
|  | int c, d; | 
|  | @@ -2234,7 +2234,7 @@ bigcomp | 
|  | nd = bc->nd; | 
|  | nd0 = bc->nd0; | 
|  | p5 = nd + bc->e0 - 1; | 
|  | -	speccase = 0; | 
|  | +	dd = speccase = 0; | 
|  | #ifndef Sudden_Underflow | 
|  | if (rv->d == 0.) {	/* special case: value near underflow-to-zero */ | 
|  | /* threshold was rounded to zero */ | 
|  | @@ -3431,7 +3430,7 @@ | 
|  |  | 
|  | j = sizeof(ULong); | 
|  | for(k = 0; | 
|  | -		sizeof(Bigint) - sizeof(ULong) - sizeof(int) + j <= i; | 
|  | +		sizeof(Bigint) - sizeof(ULong) - sizeof(int) + j <= (size_t)i; | 
|  | j <<= 1) | 
|  | k++; | 
|  | r = (int*)Balloc(k); | 
|  | @@ -3447,7 +3446,7 @@ | 
|  | #ifdef KR_headers | 
|  | nrv_alloc(s, rve, n) char *s, **rve; int n; | 
|  | #else | 
|  | -nrv_alloc(char *s, char **rve, int n) | 
|  | +nrv_alloc(CONST char *s, char **rve, int n) | 
|  | #endif | 
|  | { | 
|  | char *rv, *t; | 
|  | @@ -4202,6 +4201,5 @@ | 
|  | *rve = s; | 
|  | return s0; | 
|  | } | 
|  | -#ifdef __cplusplus | 
|  | -} | 
|  | -#endif | 
|  | + | 
|  | +}  // namespace dmg_fp | 
|  | Index: g_fmt.cc | 
|  | --- g_fmt.cc   (old copy) | 
|  | +++ g_fmt.cc   (new copy) | 
|  | @@ -46,14 +46,14 @@ g_fmt(register char *b, double x) | 
|  | if (sign) | 
|  | *b++ = '-'; | 
|  | if (decpt == 9999) /* Infinity or Nan */ { | 
|  | -		while(*b++ = *s++); | 
|  | +		while((*b++ = *s++)); | 
|  | goto done0; | 
|  | } | 
|  | if (decpt <= -4 || decpt > se - s + 5) { | 
|  | *b++ = *s++; | 
|  | if (*s) { | 
|  | *b++ = '.'; | 
|  | -			while(*b = *s++) | 
|  | +			while((*b = *s++)) | 
|  | b++; | 
|  | } | 
|  | *b++ = 'e'; | 
|  | @@ -79,10 +79,10 @@ g_fmt(register char *b, double x) | 
|  | *b++ = '.'; | 
|  | for(; decpt < 0; decpt++) | 
|  | *b++ = '0'; | 
|  | -		while(*b++ = *s++); | 
|  | +		while((*b++ = *s++)); | 
|  | } | 
|  | else { | 
|  | -		while(*b = *s++) { | 
|  | +		while((*b = *s++)) { | 
|  | b++; | 
|  | if (--decpt == 0 && *s) | 
|  | *b++ = '.'; | 
|  | @@ -93,7 +93,9 @@ g_fmt(register char *b, double x) | 
|  | } | 
|  | done0: | 
|  | freedtoa(s0); | 
|  | +#ifdef IGNORE_ZERO_SIGN | 
|  | done: | 
|  | +#endif | 
|  | return b0; | 
|  | } | 
|  |  |