aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libjava/ChangeLog5
-rw-r--r--libjava/java/io/BufferedReader.java9
2 files changed, 12 insertions, 2 deletions
diff --git a/libjava/ChangeLog b/libjava/ChangeLog
index 7aaf712..9a0891b 100644
--- a/libjava/ChangeLog
+++ b/libjava/ChangeLog
@@ -1,3 +1,8 @@
+2002-04-30 Tom Tromey <tromey@redhat.com>
+
+ * java/io/BufferedReader.java (fill): Handle case where markPos
+ point to ignored \n. Fixes PR libgcj/6301.
+
2002-04-29 Gerhard Tonn <GerhardTonn@swol.de>
* java/lang/ieeefp.h: Define __IEEE_BIG_ENDIAN for S/390.
diff --git a/libjava/java/io/BufferedReader.java b/libjava/java/io/BufferedReader.java
index b3a7bed..b4cdb63 100644
--- a/libjava/java/io/BufferedReader.java
+++ b/libjava/java/io/BufferedReader.java
@@ -1,5 +1,5 @@
/* BufferedReader.java
- Copyright (C) 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -355,7 +355,12 @@ public class BufferedReader extends Reader
if (retAtEndOfBuffer && buffer[pos] == '\n')
{
--count;
- pos++;
+ // If the mark was set to the location of the \n, then we
+ // must change it to fully pretend that the \n does not
+ // exist.
+ if (markPos == pos)
+ ++markPos;
+ ++pos;
}
return count;