diff options
-rw-r--r-- | ChangeLog | 9 | ||||
-rw-r--r-- | gnu/java/net/CRLFInputStream.java | 12 | ||||
-rw-r--r-- | gnu/java/net/LineInputStream.java | 31 | ||||
-rw-r--r-- | gnu/xml/stream/CRLFReader.java | 9 |
4 files changed, 49 insertions, 12 deletions
@@ -1,3 +1,12 @@ +2006-02-25 Chris Burdess <dog@gnu.org> + + * gnu/java/net/CRLFInputStream.java, + gnu/java/net/LineInputStream.java: Streams that use mark + capabilities on the underlying stream do not expose mark + functionality themselves. + * gnu/xml/stream/CRLFReader.java: Fix incorrect end condition when + off > 0. + 2006-02-25 Ito Kazumitsu <kaz@maczuka.gcd.org> * gnu/regexp/REMatch.java(matchFlags): New int field used as diff --git a/gnu/java/net/CRLFInputStream.java b/gnu/java/net/CRLFInputStream.java index e021daf1b..ac3482679 100644 --- a/gnu/java/net/CRLFInputStream.java +++ b/gnu/java/net/CRLFInputStream.java @@ -1,5 +1,5 @@ /* CRLFInputStream.java -- - Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc. + Copyright (C) 2002, 2003, 2004, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -39,7 +39,6 @@ exception statement from your version. */ package gnu.java.net; import java.io.BufferedInputStream; -import java.io.FilterInputStream; import java.io.IOException; import java.io.InputStream; @@ -49,7 +48,7 @@ import java.io.InputStream; * @author Chris Burdess (dog@gnu.org) */ public class CRLFInputStream - extends FilterInputStream + extends InputStream { /** * The CR octet. @@ -61,6 +60,11 @@ public class CRLFInputStream */ public static final int LF = 10; + /** + * The underlying input stream. + */ + protected InputStream in; + private boolean doReset; /** @@ -69,7 +73,7 @@ public class CRLFInputStream */ public CRLFInputStream(InputStream in) { - super(in.markSupported() ? in : new BufferedInputStream(in)); + this.in = in.markSupported() ? in : new BufferedInputStream(in); } /** diff --git a/gnu/java/net/LineInputStream.java b/gnu/java/net/LineInputStream.java index 81a3c7d1f..da307dbdd 100644 --- a/gnu/java/net/LineInputStream.java +++ b/gnu/java/net/LineInputStream.java @@ -1,5 +1,5 @@ /* LineInputStream.java -- - Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. + Copyright (C) 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -40,7 +40,6 @@ package gnu.java.net; import java.io.BufferedInputStream; import java.io.ByteArrayOutputStream; -import java.io.FilterInputStream; import java.io.IOException; import java.io.InputStream; @@ -50,8 +49,14 @@ import java.io.InputStream; * @author Chris Burdess (dog@gnu.org) */ public class LineInputStream - extends FilterInputStream + extends InputStream { + + /** + * The underlying input stream. + */ + protected InputStream in; + /* * Line buffer. */ @@ -88,7 +93,7 @@ public class LineInputStream */ public LineInputStream(InputStream in, String encoding) { - super(in); + this.in = in; buf = new ByteArrayOutputStream(); this.encoding = encoding; eof = false; @@ -96,6 +101,24 @@ public class LineInputStream blockReads = !(in instanceof BufferedInputStream) && in.markSupported(); } + public int read() + throws IOException + { + return in.read(); + } + + public int read(byte[] buf) + throws IOException + { + return in.read(buf); + } + + public int read(byte[] buf, int off, int len) + throws IOException + { + return in.read(buf, off, len); + } + /** * Read a line of input. */ diff --git a/gnu/xml/stream/CRLFReader.java b/gnu/xml/stream/CRLFReader.java index 1d214ce52..dad02b94a 100644 --- a/gnu/xml/stream/CRLFReader.java +++ b/gnu/xml/stream/CRLFReader.java @@ -1,5 +1,5 @@ /* CRLFReader.java -- - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005,2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -153,13 +153,14 @@ class CRLFReader throws IOException { doReset = false; - int lm1 = len - 1; - for (int i = off; i < len; i++) + int end = off + len; + int em1 = end - 1; + for (int i = off; i < end; i++) { if (b[i] == '\r') // CR { int d; - if (i == lm1) + if (i == em1) { d = in.read(); doReset = true; |