From 9733e4ee3172af5cf90267abf4a9ce8e082c058b Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Mon, 10 May 1999 12:33:07 +0000 Subject: [PATCH] InputStreamReader.java (read): If length is 0, return 0. * java/io/InputStreamReader.java (read): If length is 0, return 0. Reset `wpos' and `wcount' when buffer has been filled and emptied. * java/util/Properties.java (save): Removed `FIXME' comment. (load): Invalid characters in \u now treated as terminators. Make sure to append character resulting from `\' handling. Cast to `char' when appending to key or value. (skip_ws): Inverted test for whitespace. From-SVN: r26862 --- libjava/ChangeLog | 10 ++++++++++ libjava/java/io/InputStreamReader.java | 7 +++++++ libjava/java/util/Properties.java | 24 ++++++++++++++---------- 3 files changed, 31 insertions(+), 10 deletions(-) diff --git a/libjava/ChangeLog b/libjava/ChangeLog index ef1c6dd2852..7cd285ed976 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -1,5 +1,15 @@ 1999-05-10 Tom Tromey + * java/io/InputStreamReader.java (read): If length is 0, return + 0. Reset `wpos' and `wcount' when buffer has been filled and + emptied. + + * java/util/Properties.java (save): Removed `FIXME' comment. + (load): Invalid characters in \u now treated as terminators. + Make sure to append character resulting from `\' handling. + Cast to `char' when appending to key or value. + (skip_ws): Inverted test for whitespace. + * java/io/RandomAccessFile.java (RandomAccessFile): Removed `FIXME' comment. (readLine): Likewise. diff --git a/libjava/java/io/InputStreamReader.java b/libjava/java/io/InputStreamReader.java index 5d37303121b..ae5e2c7b0eb 100644 --- a/libjava/java/io/InputStreamReader.java +++ b/libjava/java/io/InputStreamReader.java @@ -111,6 +111,8 @@ public class InputStreamReader extends Reader } else { + if (length == 0) + return 0; for (;;) { in.mark(1); @@ -141,6 +143,11 @@ public class InputStreamReader extends Reader wpos = 0; wcount = 0; } + else if (wavail == 0) + { + wpos = 0; + wcount = 0; + } int count = read(work, wpos, work.length-wpos); if (count <= 0) return -1; diff --git a/libjava/java/util/Properties.java b/libjava/java/util/Properties.java index aac72147720..2988e7be5fe 100644 --- a/libjava/java/util/Properties.java +++ b/libjava/java/util/Properties.java @@ -103,7 +103,7 @@ public class Properties extends Hashtable // FIXME: we use our own definition of whitespace. // Character.isWhitespace includes newlines, which we don't // want. Character.isSpaceChar doesn't include \t. - if (c == ' ' || c == '\t') + if (c != ' ' && c != '\t') { reader.unread(c); return true; @@ -166,12 +166,12 @@ public class Properties extends Hashtable reader.unread(c); break; } - // FIXME: again, our own definitino of whitespace. + // FIXME: again, our own definition of whitespace. if (c == ' ' || c == '\t' || c == ':' || c == '=') break; first_char = false; - key.append(c); + key.append((char) c); } // Found end of key. Skip whitespace. If the terminator @@ -226,10 +226,14 @@ public class Properties extends Hashtable if (x == -1) return; int d = Character.digit((char) x, 16); - // FIXME: what to do here? We call it an - // error. + // We follow JDK here: invalid characters + // are treated as terminators. if (d == -1) - throw new IOException (); + { + value.append((char) c); + c = x; + break; + } c <<= 4; c |= d; } @@ -238,8 +242,7 @@ public class Properties extends Hashtable // Nothing. } } - else - value.append(c); + value.append((char) c); } put (key.toString(), value.toString()); @@ -290,7 +293,8 @@ public class Properties extends Hashtable { if (comment != null) { - // FIXME: what if COMMENT contains newlines? + // We just lose if COMMENT contains a newline. This is + // what JDK 1.1 does. output.write("#"); output.write(comment); output.write(newline); @@ -309,7 +313,7 @@ public class Properties extends Hashtable // characters. But it also doesn't say we should encode // it in any way. // FIXME: if key contains ':', '=', or whitespace, must - // quote it here. + // quote it here. Note that JDK 1.1 does not do this. output.write(key); output.write("="); -- 2.30.2