StreamTokenizer.java: Don't throw a NumberFormatException if a field is numeric as far as the...

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
This commit is contained in:
Andrew Haley 2000-09-01 15:00:59 +00:00 committed by Andrew Haley
parent 6324d2bbb6
commit ad17a40dce
2 changed files with 26 additions and 5 deletions

View 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.

View 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))
{