diff options
author | aph <aph@138bc75d-0d04-0410-961f-82ee72b054a4> | 2000-09-01 15:00:59 +0000 |
---|---|---|
committer | aph <aph@138bc75d-0d04-0410-961f-82ee72b054a4> | 2000-09-01 15:00:59 +0000 |
commit | d97f1cd7330bf9dd8e74dd0d23e23c17860b8767 (patch) | |
tree | 8dd2c656446ae0cb7a7680e3be230dd18cb68fc6 | |
parent | ed7ebdfdb994648f22724c0d163432ce2bf0862e (diff) | |
download | gcc-d97f1cd7330bf9dd8e74dd0d23e23c17860b8767.tar.gz |
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36100 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r-- | libjava/ChangeLog | 7 | ||||
-rw-r--r-- | libjava/java/io/StreamTokenizer.java | 24 |
2 files changed, 26 insertions, 5 deletions
diff --git a/libjava/ChangeLog b/libjava/ChangeLog index 5d6ac892b91..a8a8b007a39 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -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. diff --git a/libjava/java/io/StreamTokenizer.java b/libjava/java/io/StreamTokenizer.java index 3c4d8c6cfa1..b3c80030216 100644 --- a/libjava/java/io/StreamTokenizer.java +++ b/libjava/java/io/StreamTokenizer.java @@ -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)) { |