]> rtime.felk.cvut.cz Git - fpga/lx-cpu1/newlib-tumbl.git/commitdiff
* libc/stdlib/strtod.c (_strtod_r): Revert change from 2011-05-16.
authorCorinna Vinschen <corinna@vinschen.de>
Wed, 19 Dec 2012 10:15:59 +0000 (10:15 +0000)
committerCorinna Vinschen <corinna@vinschen.de>
Wed, 19 Dec 2012 10:15:59 +0000 (10:15 +0000)
newlib/ChangeLog
newlib/libc/stdlib/strtod.c

index 62c36c85f7434899eb63120dba51f365e2255ad4..f8e2e4ebd22b955a0763ab920e7a926a465f2c48 100644 (file)
@@ -1,3 +1,7 @@
+2012-12-19  Corinna Vinschen  <vinschen@redhat.com>
+
+       * libc/stdlib/strtod.c (_strtod_r): Revert change from 2011-05-16.
+
 2012-12-18  Jeff Johnston  <jjohnstn@redhat.com>
 
        * libc/include/math.h: Remove the log2f macro.
index 7e73b12ac9b49880832e8782ffe575fc1143f21f..fe6aac20615ff7cd9ccaf29e74d4b3afab1be22e 100644 (file)
@@ -309,7 +309,8 @@ _DEFUN (_strtod_r, (ptr, s00, se),
         }
        nd0 = nd;
        if (strncmp (s, _localeconv_r (ptr)->decimal_point,
-                    strlen (_localeconv_r (ptr)->decimal_point)) == 0) {
+                    strlen (_localeconv_r (ptr)->decimal_point)) == 0)
+               {
                decpt = 1;
                c = *(s += strlen (_localeconv_r (ptr)->decimal_point));
                if (!nd) {
@@ -327,28 +328,25 @@ _DEFUN (_strtod_r, (ptr, s00, se),
  have_dig:
                        nz++;
                        if (c -= '0') {
+                               nf += nz;
                                for(i = 1; i < nz; i++) {
-                                       if (nd <= DBL_DIG + 1) {
-                                               if (nd + i < 10)
+                                       if (nd++ <= DBL_DIG + 1) {
+                                               if (nd < 10)
                                                        y *= 10;
                                                else
                                                        z *= 10;
                                        }
                                }
-                               if (nd <= DBL_DIG + 1) {
-                                       if (nd + i < 10)
+                               if (nd++ <= DBL_DIG + 1) {
+                                       if (nd < 10)
                                                y = 10*y + c;
                                        else
                                                z = 10*z + c;
                                }
-                               if (nd <= DBL_DIG + 1) {
-                                       nf += nz;
-                                       nd += nz;
-                               }
                                nz = 0;
+                               }
                        }
                }
-       }
  dig_done:
        e = 0;
        if (c == 'e' || c == 'E') {