diff options
author | Kenny Root <kenny@the-b.org> | 2010-02-08 22:57:45 +0000 |
---|---|---|
committer | Kenny Root <kenny@the-b.org> | 2010-02-08 22:57:45 +0000 |
commit | cb286d552a59ff15f3780376d436be9f44f89d1a (patch) | |
tree | 395dbf8cf00edba3400f719c011874878ce1e959 /src/gnu/java | |
parent | 0c00f07a22ae60543b8b5e1faaa6bbdc9c6e81d3 (diff) | |
download | connectbot-cb286d552a59ff15f3780376d436be9f44f89d1a.tar.gz connectbot-cb286d552a59ff15f3780376d436be9f44f89d1a.tar.bz2 connectbot-cb286d552a59ff15f3780376d436be9f44f89d1a.zip |
Switch to Apache Harmony implementation of CP437
git-svn-id: https://connectbot.googlecode.com/svn/trunk/connectbot@473 df292f66-193f-0410-a5fc-6d59da041ff2
Diffstat (limited to 'src/gnu/java')
-rw-r--r-- | src/gnu/java/nio/charset/ByteCharset.java | 188 | ||||
-rw-r--r-- | src/gnu/java/nio/charset/Cp437.java | 90 |
2 files changed, 0 insertions, 278 deletions
diff --git a/src/gnu/java/nio/charset/ByteCharset.java b/src/gnu/java/nio/charset/ByteCharset.java deleted file mode 100644 index a7de91c..0000000 --- a/src/gnu/java/nio/charset/ByteCharset.java +++ /dev/null @@ -1,188 +0,0 @@ -/* ByteCharset.java -- Abstract class for generic 1-byte encodings. - Copyright (C) 2005 Free Software Foundation, Inc. - -This file is part of GNU Classpath. - -GNU Classpath is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU Classpath is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU Classpath; see the file COPYING. If not, write to the -Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -02110-1301 USA. - -Linking this library statically or dynamically with other modules is -making a combined work based on this library. Thus, the terms and -conditions of the GNU General Public License cover the whole -combination. - -As a special exception, the copyright holders of this library give you -permission to link this library with independent modules to produce an -executable, regardless of the license terms of these independent -modules, and to copy and distribute the resulting executable under -terms of your choice, provided that you also meet, for each linked -independent module, the terms and conditions of the license of that -module. An independent module is a module which is not derived from -or based on this library. If you modify this library, you may extend -this exception to your version of the library, but you are not -obligated to do so. If you do not wish to do so, delete this -exception statement from your version. */ - -package gnu.java.nio.charset; - -import java.nio.ByteBuffer; -import java.nio.CharBuffer; -import java.nio.charset.Charset; -import java.nio.charset.CharsetDecoder; -import java.nio.charset.CharsetEncoder; -import java.nio.charset.CoderResult; - -/** - * A generic encoding framework for single-byte encodings, - * utilizing a look-up table. - * - * This replaces the gnu.java.io.EncoderEightBitLookup class, - * created by Aron Renn. - * - * @author Sven de Marothy - */ -abstract class ByteCharset extends Charset -{ - protected char[] lookupTable; - /** - * Char to signify the character in the table is undefined - */ - protected static final char NONE = (char)0xFFFD; - - ByteCharset (String canonicalName, String[] aliases) - { - super (canonicalName, aliases); - } - - /** - * Most western charsets include ASCII, but this should - * be overloaded for others. - */ - public boolean contains (Charset cs) - { -// return cs instanceof US_ASCII || (cs.getClass() == getClass()); - return cs.getClass() == cs.getClass(); - } - - char[] getLookupTable() - { - return lookupTable; - } - - public CharsetDecoder newDecoder () - { - return new Decoder (this); - } - - public CharsetEncoder newEncoder () - { - return new Encoder (this); - } - - private static final class Decoder extends CharsetDecoder - { - private char[] lookup; - - // Package-private to avoid a trampoline constructor. - Decoder (ByteCharset cs) - { - super (cs, 1.0f, 1.0f); - lookup = cs.getLookupTable(); - } - - protected CoderResult decodeLoop (ByteBuffer in, CharBuffer out) - { - // TODO: Optimize this in the case in.hasArray() / out.hasArray() - while (in.hasRemaining ()) - { - byte b = in.get (); - char c; - - if (!out.hasRemaining ()) - { - in.position (in.position () - 1); - return CoderResult.OVERFLOW; - } - - if((c = lookup[(int) (b & 0xFF)]) == NONE); - // return CoderResult.unmappableForLength (1); - out.put (c); - } - - return CoderResult.UNDERFLOW; - } - } - - private static final class Encoder extends CharsetEncoder - { - private byte[] lookup; - - // Package-private to avoid a trampoline constructor. - Encoder (ByteCharset cs) - { - super (cs, 1.0f, 1.0f); - - char[] lookup_table = cs.getLookupTable(); - - // Create the inverse look-up table. - // determine required size of encoding_table: - int max = 0; - for (int i = 0; i < lookup_table.length; i++) - { - int c = (int)lookup_table[i]; - max = (c > max && c < NONE) ? c : max; - } - - lookup = new byte[max+1]; - - for (int i = 0; i < lookup_table.length; i++) - { - int c = (int)lookup_table[i]; - if (c != 0 && c < NONE) - { - lookup[c] = (byte)i; - } - } - } - - protected CoderResult encodeLoop (CharBuffer in, ByteBuffer out) - { - // TODO: Optimize this in the case in.hasArray() / out.hasArray() - while (in.hasRemaining ()) - { - int c = (int)in.get (); - - if (!out.hasRemaining ()) - { - in.position (in.position () - 1); - return CoderResult.OVERFLOW; - } - - // lookup byte encoding - byte b = (c < lookup.length) ? lookup[c] : (byte)0; - - if ((int)b != 0 || (int)c == 0) - { - out.put (b); - } else { - in.position (in.position () - 1); - return CoderResult.unmappableForLength (1); - } - } - - return CoderResult.UNDERFLOW; - } - } -} diff --git a/src/gnu/java/nio/charset/Cp437.java b/src/gnu/java/nio/charset/Cp437.java deleted file mode 100644 index a2e8bbe..0000000 --- a/src/gnu/java/nio/charset/Cp437.java +++ /dev/null @@ -1,90 +0,0 @@ -/* Cp437.java -- Charset implementation for the Cp437 character set. - Copyright (C) 2005 Free Software Foundation, Inc. - -This file is part of GNU Classpath. - -GNU Classpath is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU Classpath is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU Classpath; see the file COPYING. If not, write to the -Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -02110-1301 USA. - -Linking this library statically or dynamically with other modules is -making a combined work based on this library. Thus, the terms and -conditions of the GNU General Public License cover the whole -combination. - -As a special exception, the copyright holders of this library give you -permission to link this library with independent modules to produce an -executable, regardless of the license terms of these independent -modules, and to copy and distribute the resulting executable under -terms of your choice, provided that you also meet, for each linked -independent module, the terms and conditions of the license of that -module. An independent module is a module which is not derived from -or based on this library. If you modify this library, you may extend -this exception to your version of the library, but you are not -obligated to do so. If you do not wish to do so, delete this -exception statement from your version. */ - -package gnu.java.nio.charset; - -public class Cp437 extends ByteCharset -{ - public static final String NAME = "CP437"; - - /** - * This is the lookup table for this encoding - */ - private static final char[] lookup = - { - 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, - 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, - 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, - 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F, - 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, - 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, - 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, - 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, - 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, - 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, - 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, - 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, - 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F, - 0x00C7, 0x00FC, 0x00E9, 0x00E2, 0x00E4, 0x00E0, 0x00E5, 0x00E7, - 0x00EA, 0x00EB, 0x00E8, 0x00EF, 0x00EE, 0x00EC, 0x00C4, 0x00C5, - 0x00C9, 0x00E6, 0x00C6, 0x00F4, 0x00F6, 0x00F2, 0x00FB, 0x00F9, - 0x00FF, 0x00D6, 0x00DC, 0x00A2, 0x00A3, 0x00A5, 0x20A7, 0x0192, - 0x00E1, 0x00ED, 0x00F3, 0x00FA, 0x00F1, 0x00D1, 0x00AA, 0x00BA, - 0x00BF, 0x2310, 0x00AC, 0x00BD, 0x00BC, 0x00A1, 0x00AB, 0x00BB, - 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, - 0x2555, 0x2563, 0x2551, 0x2557, 0x255D, 0x255C, 0x255B, 0x2510, - 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x255E, 0x255F, - 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x2567, - 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256B, - 0x256A, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580, - 0x03B1, 0x00DF, 0x0393, 0x03C0, 0x03A3, 0x03C3, 0x00B5, 0x03C4, - 0x03A6, 0x0398, 0x03A9, 0x03B4, 0x221E, 0x03C6, 0x03B5, 0x2229, - 0x2261, 0x00B1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00F7, 0x2248, - 0x00B0, 0x2219, 0x00B7, 0x221A, 0x207F, 0x00B2, 0x25A0, 0x00A0 - }; - - public Cp437() - { - super("Cp437", new String[] { - }); - lookupTable = lookup; - } - -} // class Cp437 |