• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1Index: dtoa.cc
2--- dtoa.cc    (old copy)
3+++ dtoa.cc    (working copy)
4@@ -179,6 +179,9 @@
5  *	used for input more than STRTOD_DIGLIM digits long (default 40).
6  */
7
8+#define IEEE_8087
9+#define NO_HEX_FP
10+
11 #ifndef Long
12 #define Long long
13 #endif
14@@ -280,9 +283,7 @@
15 #include "math.h"
16 #endif
17
18-#ifdef __cplusplus
19-extern "C" {
20-#endif
21+namespace dmg_fp {
22
23 #ifndef CONST
24 #ifdef KR_headers
25@@ -511,11 +512,9 @@
26
27 #define Kmax 7
28
29-#ifdef __cplusplus
30-extern "C" double strtod(const char *s00, char **se);
31-extern "C" char *dtoa(double d, int mode, int ndigits,
32+double strtod(const char *s00, char **se);
33+char *dtoa(double d, int mode, int ndigits,
34 			int *decpt, int *sign, char **rve);
35-#endif
36
37  struct
38 Bigint {
39@@ -1527,7 +1526,7 @@
40 #ifdef KR_headers
41 	(sp, t) char **sp, *t;
42 #else
43-	(CONST char **sp, char *t)
44+	(CONST char **sp, CONST char *t)
45 #endif
46 {
47 	int c, d;
48@@ -2234,7 +2234,7 @@ bigcomp
49 	nd = bc->nd;
50 	nd0 = bc->nd0;
51 	p5 = nd + bc->e0 - 1;
52-	speccase = 0;
53+	dd = speccase = 0;
54 #ifndef Sudden_Underflow
55 	if (rv->d == 0.) {	/* special case: value near underflow-to-zero */
56 				/* threshold was rounded to zero */
57@@ -3431,7 +3430,7 @@
58
59 	j = sizeof(ULong);
60 	for(k = 0;
61-		sizeof(Bigint) - sizeof(ULong) - sizeof(int) + j <= i;
62+		sizeof(Bigint) - sizeof(ULong) - sizeof(int) + j <= (size_t)i;
63 		j <<= 1)
64 			k++;
65 	r = (int*)Balloc(k);
66@@ -3447,7 +3446,7 @@
67 #ifdef KR_headers
68 nrv_alloc(s, rve, n) char *s, **rve; int n;
69 #else
70-nrv_alloc(char *s, char **rve, int n)
71+nrv_alloc(CONST char *s, char **rve, int n)
72 #endif
73 {
74 	char *rv, *t;
75@@ -4202,6 +4201,5 @@
76 		*rve = s;
77 	return s0;
78 	}
79-#ifdef __cplusplus
80-}
81-#endif
82+
83+}  // namespace dmg_fp
84Index: g_fmt.cc
85--- g_fmt.cc   (old copy)
86+++ g_fmt.cc   (new copy)
87@@ -46,14 +46,14 @@ g_fmt(register char *b, double x)
88 	if (sign)
89 		*b++ = '-';
90 	if (decpt == 9999) /* Infinity or Nan */ {
91-		while(*b++ = *s++);
92+		while((*b++ = *s++));
93 		goto done0;
94 		}
95 	if (decpt <= -4 || decpt > se - s + 5) {
96 		*b++ = *s++;
97 		if (*s) {
98 			*b++ = '.';
99-			while(*b = *s++)
100+			while((*b = *s++))
101 				b++;
102 			}
103 		*b++ = 'e';
104@@ -79,10 +79,10 @@ g_fmt(register char *b, double x)
105 		*b++ = '.';
106 		for(; decpt < 0; decpt++)
107 			*b++ = '0';
108-		while(*b++ = *s++);
109+		while((*b++ = *s++));
110 		}
111 	else {
112-		while(*b = *s++) {
113+		while((*b = *s++)) {
114 			b++;
115 			if (--decpt == 0 && *s)
116 				*b++ = '.';
117@@ -93,7 +93,9 @@ g_fmt(register char *b, double x)
118 		}
119  done0:
120 	freedtoa(s0);
121+#ifdef IGNORE_ZERO_SIGN
122  done:
123+#endif
124 	return b0;
125 	}
126
127