@@ -88,43 +88,6 @@ char* ultoa(unsigned long value, char* result, int base) {
88
88
return result ;
89
89
}
90
90
91
- #if 1
92
- // This version is intended to be user proof
93
- // It avoids Stack Smashing issue, even for s = String(-234223.4f, 32) or String(0.0f, 100)
94
- char * dtostrf (double number , signed char width , unsigned char prec , char * s ) {
95
- char fmt [20 ]; // just for the formating in sprintf()
96
- uint8_t numSize = 0 ;
97
- int maxPrec ;
98
-
99
- if (isnan (number )) {
100
- strcpy (s , "nan" );
101
- return s ;
102
- }
103
- if (isinf (number )) {
104
- strcpy (s , "inf" );
105
- return s ;
106
- }
107
-
108
- // calculates how many characters the integer part of the float will take
109
- if (number < 0 ) { // number is negative
110
- numSize = 1 ; // for the '-' simbol
111
- }
112
- double n = fabs (number );
113
- do {
114
- numSize ++ ;
115
- n = n / 10 ;
116
- } while (n > 1 );
117
- if (prec ) numSize += 1 ; // for the '.'
118
- // avoiding Stack smashing protect failure!
119
- maxPrec = width - numSize ;
120
- if (prec ) prec = maxPrec > 0 ? maxPrec : 0 ;
121
-
122
- sprintf (fmt , "%%%d.%df" , numSize , prec );
123
- sprintf (s , fmt , number );
124
- return s ;
125
- }
126
- #else
127
- // orginal code from Arduino ESP8266
128
91
char * dtostrf (double number , signed char width , unsigned char prec , char * s ) {
129
92
bool negative = false;
130
93
@@ -197,4 +160,3 @@ char * dtostrf(double number, signed char width, unsigned char prec, char *s) {
197
160
* out = 0 ;
198
161
return s ;
199
162
}
200
- #endif
0 commit comments