| 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; |
| } |
| |