--- strtod.c Wed Apr 7 16:52:39 1999 +++ strtod.c.new Wed Apr 3 19:14:18 2002 @@ -245,13 +245,32 @@ else { /* No exponent after an 'E' : that's an error. */ - ptr->_errno = EINVAL; + /* This seems not to be true. We can arrive here parsing a + * number string of the form ....E0000.. And to my understanding, + * this is a number times 1 and perfectly legal.? So I propose + * to simply set e to 0 and continue. If there is *really* + * no digit after the 'E' we will find ourselves behind next + * "else". + * address@hidden + */ + //ptr->_errno = EINVAL; e = 0; - goto ret; + //goto ret; } } - else + else + { + /* No exponent after an 'E' : that's an error. */ + /* I thimk this is not true before here. So we could place the + * the error exit code here: + */ + ptr->_errno = EINVAL; + e = 0; + goto ret; + + /* I do not see what this line means... */ s = s00; + } } if (!nd) {