[kaffe] CVS kaffe (kaz): libraries/javalib/kaffe/io/ByteToCharConverter.java

Kaffe CVS Kaffe Mailing List <kaffe@kaffe.org>
Mon Dec 29 18:25:02 2003


PatchSet 4244 
Date: 2003/12/30 02:22:30
Author: kaz
Branch: HEAD
Tag: (none) 
Log:

2003-12-30  Ito Kazumitsu  <kaz@maczuka.gcd.org>

        * libraries/javalib/kaffe/io/ByteToCharConverter.java
        (getConverterInternal),
        libraries/javalib/kaffe/io/CharToByteConverter.java
        (getConverterInternal):
        For an encoding name that cannot be a class name, directly
        return an instance of the iconv based converter.

Members: 
	ChangeLog:1.1833->1.1834 
	libraries/javalib/kaffe/io/ByteToCharConverter.java:1.18->1.19 
	libraries/javalib/kaffe/io/CharToByteConverter.java:1.12->1.13 

Index: kaffe/ChangeLog
diff -u kaffe/ChangeLog:1.1833 kaffe/ChangeLog:1.1834
--- kaffe/ChangeLog:1.1833	Mon Dec 29 23:59:00 2003
+++ kaffe/ChangeLog	Tue Dec 30 02:22:30 2003
@@ -1,3 +1,12 @@
+2003-12-30  Ito Kazumitsu  <kaz@maczuka.gcd.org>
+
+	* libraries/javalib/kaffe/io/ByteToCharConverter.java
+	(getConverterInternal),
+	libraries/javalib/kaffe/io/CharToByteConverter.java
+	(getConverterInternal):
+	For an encoding name that cannot be a class name, directly
+	return an instance of the iconv based converter.
+
 2003-12-29  Ito Kazumitsu  <kaz@maczuka.gcd.org>
 
 	* libraries/javalib/kaffe/io/ConverterAlias.java:
Index: kaffe/libraries/javalib/kaffe/io/ByteToCharConverter.java
diff -u kaffe/libraries/javalib/kaffe/io/ByteToCharConverter.java:1.18 kaffe/libraries/javalib/kaffe/io/ByteToCharConverter.java:1.19
--- kaffe/libraries/javalib/kaffe/io/ByteToCharConverter.java:1.18	Wed Nov  6 04:38:41 2002
+++ kaffe/libraries/javalib/kaffe/io/ByteToCharConverter.java	Tue Dec 30 02:22:31 2003
@@ -109,7 +109,24 @@
 	}
 	try {
 		if (cls == null) {
-			String realenc = encodingRoot + ".ByteToChar" + ConverterAlias.alias(enc);
+			String realenc = ConverterAlias.alias(enc);
+			// Check whether realenc has a character that
+			// cannot be used for class names but may appear
+			// in encoding names.  As far as I know, such
+			// characters include: '-'.
+			for (int i = 0; i < realenc.length(); i++) {
+				if (realenc.charAt(i) == '-') {
+					try {
+						return (new ByteToCharIconv (realenc);
+					}
+					catch (UnsupportedEncodingException _) {
+						cache.put(enc, noConverter);
+						return (null);
+					}
+				}
+			}
+			realenc = encodingRoot + ".CharToByte" + realenc;
+			String realenc = encodingRoot + ".ByteToChar" + realenc;
 			cls = Class.forName(realenc);
 			cache.put(enc, cls);
 		}
Index: kaffe/libraries/javalib/kaffe/io/CharToByteConverter.java
diff -u kaffe/libraries/javalib/kaffe/io/CharToByteConverter.java:1.12 kaffe/libraries/javalib/kaffe/io/CharToByteConverter.java:1.13
--- kaffe/libraries/javalib/kaffe/io/CharToByteConverter.java:1.12	Thu Nov 22 06:21:20 2001
+++ kaffe/libraries/javalib/kaffe/io/CharToByteConverter.java	Tue Dec 30 02:22:31 2003
@@ -87,7 +87,23 @@
 	}
 	try {
 		if (cls == null) {
-			String realenc = encodingRoot + ".CharToByte" + ConverterAlias.alias(enc);
+			String realenc = ConverterAlias.alias(enc);
+			// Check whether realenc has a character that
+			// cannot be used for class names but may appear
+			// in encoding names.  As far as I know, such
+			// characters include: '-'.
+			for (int i = 0; i < realenc.length(); i++) {
+				if (realenc.charAt(i) == '-') {
+					try {
+						return (new CharToByteIconv (realenc);
+					}
+					catch (UnsupportedEncodingException _) {
+						cache.put(enc, noConverter);
+						return (null);
+					}
+				}
+			}
+			realenc = encodingRoot + ".CharToByte" + realenc;
 			cls = Class.forName(realenc);
 			cache.put(enc, cls);
 		}