summaryrefslogtreecommitdiff
path: root/java/io/InputStreamReader.java
diff options
context:
space:
mode:
authorSven de Marothy <sven@physto.se>2005-04-25 23:18:30 +0000
committerSven de Marothy <sven@physto.se>2005-04-25 23:18:30 +0000
commitbc5492f3da252d5c1d2fddd8fa24f693208888db (patch)
tree7b12624b120a8fe76078f1fb529ad4cb041cc2da /java/io/InputStreamReader.java
parent5513163c900a191fab848d58ad1987c1ac7da0d7 (diff)
downloadclasspath-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.java13
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);