1999-05-10 Tom Tromey <tromey@cygnus.com>
+ * 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.
// 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;
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
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;
}
// Nothing.
}
}
- else
- value.append(c);
+ value.append((char) c);
}
put (key.toString(), value.toString());
{
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);
// 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("=");