diff options
-rw-r--r-- | libjava/ChangeLog | 5 | ||||
-rw-r--r-- | libjava/java/io/BufferedReader.java | 9 |
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; |