aboutsummaryrefslogtreecommitdiff
path: root/libjava
diff options
context:
space:
mode:
authorJeff Sturm <jsturm@sigma6.com>2000-01-16 21:33:46 +0000
committerTom Tromey <tromey@gcc.gnu.org>2000-01-16 21:33:46 +0000
commit2ce7461bd00a2b5941a0311e11affe766ffbd7af (patch)
treea8b8f7e69bbbc5d3afd0b3ceb1c0e3d9a8ee0ae8 /libjava
parented4c3661d5112ad7e18e2e6a8dda277a990e7c2a (diff)
downloadgcc-2ce7461bd00a2b5941a0311e11affe766ffbd7af.zip
gcc-2ce7461bd00a2b5941a0311e11affe766ffbd7af.tar.gz
gcc-2ce7461bd00a2b5941a0311e11affe766ffbd7af.tar.bz2
StreamTokenizer.java (nextToken): Avoid unread(TT_EOF).
2000-01-16 Jeff Sturm <jsturm@sigma6.com> * java/io/StreamTokenizer.java (nextToken): Avoid unread(TT_EOF). From-SVN: r31449
Diffstat (limited to 'libjava')
-rw-r--r--libjava/ChangeLog4
-rw-r--r--libjava/java/io/StreamTokenizer.java44
2 files changed, 33 insertions, 15 deletions
diff --git a/libjava/ChangeLog b/libjava/ChangeLog
index 8ffff03..d126cd1 100644
--- a/libjava/ChangeLog
+++ b/libjava/ChangeLog
@@ -1,3 +1,7 @@
+2000-01-16 Jeff Sturm <jsturm@sigma6.com>
+
+ * java/io/StreamTokenizer.java (nextToken): Avoid unread(TT_EOF).
+
2000-01-13 Tom Tromey <tromey@cygnus.com>
* java/lang/natClassLoader.cc (_Jv_FindClass): Register `loader',
diff --git a/libjava/java/io/StreamTokenizer.java b/libjava/java/io/StreamTokenizer.java
index d518f83..b5fc595 100644
--- a/libjava/java/io/StreamTokenizer.java
+++ b/libjava/java/io/StreamTokenizer.java
@@ -179,7 +179,10 @@ public class StreamTokenizer
// Throw away \n if in combination with \r.
if (ch == '\r' && (ch = in.read()) != '\n')
- in.unread(ch);
+ {
+ if (ch != TT_EOF)
+ in.unread(ch);
+ }
if (eolSignificant)
return (ttype = TT_EOL);
}
@@ -192,7 +195,8 @@ public class StreamTokenizer
{
// Read ahead to see if this is an ordinary '-' rather than numeric.
ch = in.read();
- in.unread(ch);
+ if (ch != TT_EOF)
+ in.unread(ch);
if (isNumeric(ch) && ch != '-')
ch = '-';
else
@@ -209,7 +213,8 @@ public class StreamTokenizer
else
tokbuf.append((char) ch);
- in.unread(ch);
+ if (ch != TT_EOF)
+ in.unread(ch);
ttype = TT_NUMBER;
nval = Double.valueOf(tokbuf.toString()).doubleValue();
}
@@ -219,7 +224,8 @@ public class StreamTokenizer
tokbuf.append((char) ch);
while (isAlphabetic(ch = in.read()) || isNumeric(ch))
tokbuf.append((char) ch);
- in.unread(ch);
+ if (ch != TT_EOF)
+ in.unread(ch);
ttype = TT_WORD;
sval = tokbuf.toString();
if (lowerCase)
@@ -229,7 +235,8 @@ public class StreamTokenizer
{
while ((ch = in.read()) != '\n' && ch != '\r' && ch != TT_EOF)
;
- in.unread(ch);
+ if (ch != TT_EOF)
+ in.unread(ch);
return nextToken(); // Recursive, but not too deep in normal cases.
}
else if (isQuote(ch))
@@ -277,14 +284,15 @@ public class StreamTokenizer
}
}
- in.unread(nextch);
+ if (nextch != TT_EOF)
+ in.unread(nextch);
}
tokbuf.append((char) ch);
}
// Throw away matching quote char.
- if (ch != ttype)
+ if (ch != ttype && ch != TT_EOF)
in.unread(ch);
sval = tokbuf.toString();
@@ -296,7 +304,8 @@ public class StreamTokenizer
{
while ((ch = in.read()) != '\n' && ch != '\r' && ch != TT_EOF)
;
- in.unread(ch);
+ if (ch != TT_EOF)
+ in.unread(ch);
return nextToken(); // Recursive, but not too deep in normal cases
}
else if (ch == '*' && slashStar)
@@ -305,19 +314,23 @@ public class StreamTokenizer
{
ch = in.read();
if (ch == '*')
- if ((ch = in.read()) == '/')
- break;
- else
- in.unread(ch);
+ {
+ if ((ch = in.read()) == '/')
+ break;
+ else if (ch != TT_EOF)
+ in.unread(ch);
+ }
else if (ch == '\n' || ch == '\r')
{
lineNumber++;
if (ch == '\r' && (ch = in.read()) != '\n')
- in.unread(ch);
+ {
+ if (ch != TT_EOF)
+ in.unread(ch);
+ }
}
else if (ch == TT_EOF)
{
- in.unread(ch);
break;
}
}
@@ -325,7 +338,8 @@ public class StreamTokenizer
}
else
{
- in.unread(ch);
+ if (ch != TT_EOF)
+ in.unread(ch);
ch = '/';
}