StreamTokenizer.java: Don't throw a NumberFormatException if a field is numeric as...
authorAndrew Haley <aph@redhat.com>
Fri, 1 Sep 2000 15:00:59 +0000 (15:00 +0000)
committerAndrew Haley <aph@gcc.gnu.org>
Fri, 1 Sep 2000 15:00:59 +0000 (15:00 +0000)
2000-09-01  Andrew Haley  <aph@redhat.com>

        * java/io/StreamTokenizer.java: Don't throw a
        NumberFormatException if a field is numeric as far as the
        StreamTokenizer is concerned but not as far as Double.valueOf() is
        concerned: return a zero instead.

For gcj/141.

From-SVN: r36100

libjava/ChangeLog
libjava/java/io/StreamTokenizer.java

index 5d6ac89..a8a8b00 100644 (file)
@@ -1,3 +1,10 @@
+2000-09-01  Andrew Haley  <aph@redhat.com>
+
+        * java/io/StreamTokenizer.java: Don't throw a
+        NumberFormatException if a field is numeric as far as the
+        StreamTokenizer is concerned but not as far as Double.valueOf() is
+        concerned: return a zero instead.      
+
 2000-08-30  Tom Tromey  <tromey@cygnus.com>
 
        * Makefile.in: Rebuilt.
index 3c4d8c6..b3c8003 100644 (file)
@@ -293,16 +293,21 @@ public class StreamTokenizer
       ttype = TT_EOF;
     else if (isNumeric(ch))
       {
+       boolean isNegative = false;
        if (ch == '-')
          {
            // Read ahead to see if this is an ordinary '-' rather than numeric.
            ch = in.read();
-           if (ch != TT_EOF)
-             in.unread(ch);
            if (isNumeric(ch) && ch != '-')
-             ch = '-';
+             {
+               isNegative = true;
+             }
            else
-             return (ttype = '-');
+             {
+               if (ch != TT_EOF)
+                 in.unread(ch);
+               return (ttype = '-');
+             }
          }
 
        StringBuffer tokbuf = new StringBuffer();
@@ -318,7 +323,16 @@ public class StreamTokenizer
        if (ch != TT_EOF)
          in.unread(ch);
        ttype = TT_NUMBER;
-       nval = Double.valueOf(tokbuf.toString()).doubleValue();
+       try
+         {
+           nval = Double.valueOf(tokbuf.toString()).doubleValue();
+         }
+       catch (NumberFormatException _)
+         {
+           nval = 0.0;
+         }
+       if (isNegative)
+         nval = -nval;
       }
     else if (isAlphabetic(ch))
       {