aboutsummaryrefslogtreecommitdiff
path: root/libjava/java/util
diff options
context:
space:
mode:
Diffstat (limited to 'libjava/java/util')
-rw-r--r--libjava/java/util/Properties.java24
1 files changed, 14 insertions, 10 deletions
diff --git a/libjava/java/util/Properties.java b/libjava/java/util/Properties.java
index aac7214..2988e7b 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("=");