summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoraph <aph@138bc75d-0d04-0410-961f-82ee72b054a4>2000-09-01 15:00:59 +0000
committeraph <aph@138bc75d-0d04-0410-961f-82ee72b054a4>2000-09-01 15:00:59 +0000
commitd97f1cd7330bf9dd8e74dd0d23e23c17860b8767 (patch)
tree8dd2c656446ae0cb7a7680e3be230dd18cb68fc6
parented7ebdfdb994648f22724c0d163432ce2bf0862e (diff)
downloadgcc-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/ChangeLog7
-rw-r--r--libjava/java/io/StreamTokenizer.java24
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))
{