diff options
| author | Sven de Marothy <sven@physto.se> | 2005-04-08 21:46:05 +0000 |
|---|---|---|
| committer | Sven de Marothy <sven@physto.se> | 2005-04-08 21:46:05 +0000 |
| commit | d619022a1d1b94506f2774b82daea02dde462e44 (patch) | |
| tree | 6628305b0ea627dc0a037df9c7e18e91d83ed62f /gnu/java/nio/charset/UTF_16Decoder.java | |
| parent | 9d37c49002f196b5aeb3a237903b1f0a23d77d1c (diff) | |
| download | classpath-d619022a1d1b94506f2774b82daea02dde462e44.tar.gz | |
2005-04-08 Sven de Marothy <sven@physto.se>
* gnu/java/nio/charset/Provider.java: Add new charsets.
* gnu/java/nio/charset/UTF_16.java: Default to using BOM.
* gnu/java/nio/charset/UTF_16Decoder.java: Minor fixes.
* gnu/java/nio/charset/UTF_16Encoder.java,
Use NIO's built-in byte-ordering instead.
* gnu/java/nio/charset/UTF_8.java,
(Decoder): Correct values of maximum chars per byte.
(decodeLoop): Handle 4-byte surrogates.
* gnu/java/nio/charset/ByteCharset.java
* gnu/java/nio/charset/Cp424.java
* gnu/java/nio/charset/Cp437.java
* gnu/java/nio/charset/Cp737.java
* gnu/java/nio/charset/Cp775.java
* gnu/java/nio/charset/Cp850.java
* gnu/java/nio/charset/Cp852.java
* gnu/java/nio/charset/Cp855.java
* gnu/java/nio/charset/Cp857.java
* gnu/java/nio/charset/Cp860.java
* gnu/java/nio/charset/Cp861.java
* gnu/java/nio/charset/Cp862.java
* gnu/java/nio/charset/Cp863.java
* gnu/java/nio/charset/Cp864.java
* gnu/java/nio/charset/Cp865.java
* gnu/java/nio/charset/Cp866.java
* gnu/java/nio/charset/Cp869.java
* gnu/java/nio/charset/Cp874.java
* gnu/java/nio/charset/EncodingHelper.java
* gnu/java/nio/charset/ISO_8859_13.java
* gnu/java/nio/charset/ISO_8859_15.java
* gnu/java/nio/charset/ISO_8859_2.java
* gnu/java/nio/charset/ISO_8859_3.java
* gnu/java/nio/charset/ISO_8859_4.java
* gnu/java/nio/charset/ISO_8859_5.java
* gnu/java/nio/charset/ISO_8859_6.java
* gnu/java/nio/charset/ISO_8859_7.java
* gnu/java/nio/charset/ISO_8859_8.java
* gnu/java/nio/charset/ISO_8859_9.java
* gnu/java/nio/charset/KOI_8.java
* gnu/java/nio/charset/MS874.java
* gnu/java/nio/charset/MacCentralEurope.java
* gnu/java/nio/charset/MacCroatian.java
* gnu/java/nio/charset/MacCyrillic.java
* gnu/java/nio/charset/MacDingbat.java
* gnu/java/nio/charset/MacGreek.java
* gnu/java/nio/charset/MacIceland.java
* gnu/java/nio/charset/MacRoman.java
* gnu/java/nio/charset/MacRomania.java
* gnu/java/nio/charset/MacSymbol.java
* gnu/java/nio/charset/MacThai.java
* gnu/java/nio/charset/MacTurkish.java
* gnu/java/nio/charset/Windows1250.java
* gnu/java/nio/charset/Windows1251.java
* gnu/java/nio/charset/Windows1252.java
* gnu/java/nio/charset/Windows1253.java
* gnu/java/nio/charset/Windows1254.java
* gnu/java/nio/charset/Windows1255.java
* gnu/java/nio/charset/Windows1256.java
* gnu/java/nio/charset/Windows1257.java
* gnu/java/nio/charset/Windows1258.java
New files.
Diffstat (limited to 'gnu/java/nio/charset/UTF_16Decoder.java')
| -rw-r--r-- | gnu/java/nio/charset/UTF_16Decoder.java | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/gnu/java/nio/charset/UTF_16Decoder.java b/gnu/java/nio/charset/UTF_16Decoder.java index 6ff9c2893..c5644fe44 100644 --- a/gnu/java/nio/charset/UTF_16Decoder.java +++ b/gnu/java/nio/charset/UTF_16Decoder.java @@ -55,8 +55,8 @@ final class UTF_16Decoder extends CharsetDecoder static final int LITTLE_ENDIAN = 1; static final int UNKNOWN_ENDIAN = 2; - private static final char BYTE_ORDER_MARK = '\uFEFF'; - private static final char REVERSED_BYTE_ORDER_MARK = '\uFFFE'; + private static final char BYTE_ORDER_MARK = 0xFEFF; + private static final char REVERSED_BYTE_ORDER_MARK = 0xFFFE; private final int originalByteOrder; private int byteOrder; @@ -83,7 +83,7 @@ final class UTF_16Decoder extends CharsetDecoder // handle byte order mark if (byteOrder == UNKNOWN_ENDIAN) { - char c = (char) ((b1 << 8) | b2); + char c = (char) (((b1 & 0xFF) << 8) | (b2 & 0xFF)); if (c == BYTE_ORDER_MARK) { byteOrder = BIG_ENDIAN; @@ -104,6 +104,7 @@ final class UTF_16Decoder extends CharsetDecoder } } + // FIXME: Change so you only do a single comparison here. char c = byteOrder == BIG_ENDIAN ? (char) ((b1 << 8) | b2) : (char) ((b2 << 8) | b1); |
