[kaffe] CVS kaffe (kaz): libraries/javalib/kaffe/io/ByteToCharSHIFT_JIS.java,
Kaffe CVS
Kaffe Mailing List <kaffe@kaffe.org>
Wed Nov 12 07:09:02 2003
PatchSet 4159
Date: 2003/11/12 15:06:24
Author: kaz
Branch: HEAD
Tag: (none)
Log:
2003-11-12 Ito Kazumitsu <kaz@maczuka.gcd.org>
libraries/javalib/kaffe/io/ByteToCharSHIFT_JIS.java,
libraries/javalib/kaffe/io/ChartoByteSHIFT_JIS.java:
New Files.
Members:
ChangeLog:1.1751->1.1752
libraries/javalib/kaffe/io/ByteToCharSHIFT_JIS.java:INITIAL->1.1
libraries/javalib/kaffe/io/CharToByteSHIFT_JIS.java:INITIAL->1.1
Index: kaffe/ChangeLog
diff -u kaffe/ChangeLog:1.1751 kaffe/ChangeLog:1.1752
--- kaffe/ChangeLog:1.1751 Tue Nov 11 14:34:43 2003
+++ kaffe/ChangeLog Wed Nov 12 15:06:24 2003
@@ -1,3 +1,9 @@
+2003-11-12 Ito Kazumitsu <kaz@maczuka.gcd.org>
+
+ libraries/javalib/kaffe/io/ByteToCharSHIFT_JIS.java,
+ libraries/javalib/kaffe/io/ChartoByteSHIFT_JIS.java:
+ New Files.
+
2003-11-11 Dalibor Topic <robilad@kaffe.org>
* kaffe/kaffevm/mem/gc-mem.c:
===================================================================
Checking out kaffe/libraries/javalib/kaffe/io/ByteToCharSHIFT_JIS.java
RCS: /home/cvs/kaffe/kaffe/libraries/javalib/kaffe/io/ByteToCharSHIFT_JIS.java,v
VERS: 1.1
***************
--- /dev/null Sun Aug 4 19:57:58 2002
+++ kaffe/libraries/javalib/kaffe/io/ByteToCharSHIFT_JIS.java Wed Nov 12 15:08:34 2003
@@ -0,0 +1,42 @@
+/*
+ * Java core library component.
+ *
+ * Copyright (c) 2000
+ * Transvirtual Technologies, Inc. All rights reserved.
+ *
+ * See the file "license.terms" for information on usage and redistribution
+ * of this file.
+ *
+ * Byte to Char converter for SHIFT_JIS encoding.
+ *
+ * @author Ito Kazumitsu <kaz@maczuka.gcd.org>
+ *
+ */
+
+/*
+ * Without this class, raw libiconv will be used for SHIFT_JIS encoding,
+ * in which case libiconv uses JIS X 0201 for characters below 0x80
+ * instead of US-ASCII. That may be pedantically correct, but
+ * practically annoying. In fact, Sun's implementation seems to
+ * use US-ASCII for characters below 0x80 even if the cocoding is
+ * SHIFT_THIS.
+ */
+package kaffe.io;
+
+public class ByteToCharSHIFT_JIS extends ByteToCharIconv {
+
+ public ByteToCharSHIFT_JIS() throws java.io.UnsupportedEncodingException {
+ super("SHIFT_JIS");
+ }
+
+ public int convert(byte[] from, int fpos, int flen, char[] to, int tpos, int tlen) {
+ int l = super.convert(from, fpos, flen, to, tpos, tlen);
+ int m = tpos + l;
+ for(int i = tpos; i < m; i++) {
+ if (to[i] == (char)0x00a5) to[i] = (char)'\\';
+ else if (to[i] == (char)0x203e) to[i] = (char)'~';
+ }
+ return l;
+ }
+
+}
===================================================================
Checking out kaffe/libraries/javalib/kaffe/io/CharToByteSHIFT_JIS.java
RCS: /home/cvs/kaffe/kaffe/libraries/javalib/kaffe/io/CharToByteSHIFT_JIS.java,v
VERS: 1.1
***************
--- /dev/null Sun Aug 4 19:57:58 2002
+++ kaffe/libraries/javalib/kaffe/io/CharToByteSHIFT_JIS.java Wed Nov 12 15:08:36 2003
@@ -0,0 +1,42 @@
+/*
+ * Java core library component.
+ *
+ * Copyright (c) 2000
+ * Transvirtual Technologies, Inc. All rights reserved.
+ *
+ * See the file "license.terms" for information on usage and redistribution
+ * of this file.
+ *
+ * Char to Byte converter for SHIFT_JIS encoding.
+ *
+ * @author Ito Kazumitsu <kaz@maczuka.gcd.org>
+ *
+ */
+
+/*
+ * Without this class, raw libiconv will be used for SHIFT_JIS encoding,
+ * in which case libiconv uses JIS X 0201 for characters below 0x80
+ * instead of US-ASCII. That may be pedantically correct, but
+ * practically annoying. In fact, Sun's implementation seems to
+ * use US-ASCII for characters below 0x80 even if the cocoding is
+ * SHIFT_THIS.
+ */
+package kaffe.io;
+
+public class CharToByteSHIFT_JIS extends CharToByteIconv {
+
+ public CharToByteSHIFT_JIS() throws java.io.UnsupportedEncodingException {
+ super("SHIFT_JIS");
+ }
+
+ public int convert(char[] from, int fpos, int flen, byte[] to, int tpos, int tlen) {
+ char[] buf = new char[flen];
+ for(int i = 0, j = fpos; i < flen; i++, j++) {
+ if (from[j] == (char)'\\') buf[i] = (char)0x00a5;
+ else if (from[j] == (char)'~') buf[i] = (char)0x203e;
+ else buf[i] = from[j];
+ }
+ return super.convert(buf, 0, flen, to, tpos, tlen);
+ }
+
+}