diff options
author | Sven de Marothy <sven@physto.se> | 2005-04-25 23:18:30 +0000 |
---|---|---|
committer | Sven de Marothy <sven@physto.se> | 2005-04-25 23:18:30 +0000 |
commit | bc5492f3da252d5c1d2fddd8fa24f693208888db (patch) | |
tree | 7b12624b120a8fe76078f1fb529ad4cb041cc2da /java/io/InputStreamReader.java | |
parent | 5513163c900a191fab848d58ad1987c1ac7da0d7 (diff) | |
download | classpath-bc5492f3da252d5c1d2fddd8fa24f693208888db.tar.gz |
2005-04-25 Sven de Marothy <sven@physto.se>
* java/io/InputStreamReader.java:
(InputStreamReader): Always replace invalid chars.
(read): Return -1 if zero bytes are read.
* native/jni/java-nio/gnu_java_nio_charset_iconv_IconvDecoder.c,
* native/jni/java-nio/gnu_java_nio_charset_iconv_IconvEncoder.c:
Correct C pointer arithmetic.
Diffstat (limited to 'java/io/InputStreamReader.java')
-rw-r--r-- | java/io/InputStreamReader.java | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/java/io/InputStreamReader.java b/java/io/InputStreamReader.java index 44057daa8..3acb7dc06 100644 --- a/java/io/InputStreamReader.java +++ b/java/io/InputStreamReader.java @@ -237,9 +237,8 @@ public class InputStreamReader extends Reader this.in = in; decoder = charset.newDecoder(); - // JDK reports errors, so we do the same. - decoder.onMalformedInput(CodingErrorAction.REPORT); - decoder.onUnmappableCharacter(CodingErrorAction.REPORT); + decoder.onMalformedInput(CodingErrorAction.REPLACE); + decoder.onUnmappableCharacter(CodingErrorAction.REPLACE); decoder.reset(); encoding = EncodingHelper.getOldCanonical(charset.name()); } @@ -258,9 +257,8 @@ public class InputStreamReader extends Reader maxBytesPerChar = 1f; } - // JDK reports errors, so we do the same. - decoder.onMalformedInput(CodingErrorAction.REPORT); - decoder.onUnmappableCharacter(CodingErrorAction.REPORT); + decoder.onMalformedInput(CodingErrorAction.REPLACE); + decoder.onUnmappableCharacter(CodingErrorAction.REPLACE); decoder.reset(); encoding = EncodingHelper.getOldCanonical(decoder.charset().name()); } @@ -390,7 +388,8 @@ public class InputStreamReader extends Reader } else byteBuffer = null; - return (read == 0)?-1:(cb.position() - startPos); + read = cb.position() - startPos; + return (read <= 0) ? -1 : read; } else { byte[] bytes = new byte[length]; int read = in.read(bytes); |