re PR libgcj/6301 (gij -jar does not work)
authorTom Tromey <tromey@redhat.com>
Tue, 30 Apr 2002 23:55:57 +0000 (23:55 +0000)
committerTom Tromey <tromey@gcc.gnu.org>
Tue, 30 Apr 2002 23:55:57 +0000 (23:55 +0000)
* java/io/BufferedReader.java (fill): Handle case where markPos
point to ignored \n.  Fixes PR libgcj/6301.

From-SVN: r52982

libjava/ChangeLog
libjava/java/io/BufferedReader.java

index 7aaf7121fa0619342fa7c1b20e834d2a26f2b2fc..9a0891bde09b388d7e6a5af58ba17520391981b7 100644 (file)
@@ -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.
index b3a7bed615751d2e8514770460164b9685b81974..b4cdb639b4333ed9ff0923c525c8f16c3dedd997 100644 (file)
@@ -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;