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

Kaffe CVS Kaffe Mailing List <kaffe@kaffe.org>
Wed Jan 7 08:52:02 2004


PatchSet 4285 
Date: 2004/01/07 16:49:09
Author: kaz
Branch: HEAD
Tag: (none) 
Log:
2004-01-07  Ito Kazumitsu  <kaz@maczuka.gcd.org>

        * libraries/javalib/kaffe/io/ByteToCharConverter.java,
        libraries/javalib/kaffe/io/CharToByteConverter.java:
        Refined (hopefully).

Members: 
	ChangeLog:1.1872->1.1873 
	libraries/javalib/kaffe/io/ByteToCharConverter.java:1.22->1.23 
	libraries/javalib/kaffe/io/CharToByteConverter.java:1.15->1.16 

Index: kaffe/ChangeLog
diff -u kaffe/ChangeLog:1.1872 kaffe/ChangeLog:1.1873
--- kaffe/ChangeLog:1.1872	Wed Jan  7 16:11:38 2004
+++ kaffe/ChangeLog	Wed Jan  7 16:49:09 2004
@@ -1,11 +1,8 @@
-2004-01-07  Dalibor Topic <robilad@kaffe.org>
+2004-01-07  Ito Kazumitsu  <kaz@maczuka.gcd.org>
 
-	* libraries/clib/net/PlainSocketImpl.c
-	[KAFFE_VMDEBUG] Merged the separate KAFFE_VMDEBUG parts
-	of the file to a single part, and added !defined(NDEBUG).
-	Fixes a compiler warning on sparc-solaris.
-
-        Reported by: Riccardo Mottola <zuse@libero.it>
+	* libraries/javalib/kaffe/io/ByteToCharConverter.java,
+	libraries/javalib/kaffe/io/CharToByteConverter.java:
+	Refined (hopefully).
 
 2004-01-06  Guilhem Lavaux <guilhem@kaffe.org>
 
Index: kaffe/libraries/javalib/kaffe/io/ByteToCharConverter.java
diff -u kaffe/libraries/javalib/kaffe/io/ByteToCharConverter.java:1.22 kaffe/libraries/javalib/kaffe/io/ByteToCharConverter.java:1.23
--- kaffe/libraries/javalib/kaffe/io/ByteToCharConverter.java:1.22	Tue Jan  6 16:27:54 2004
+++ kaffe/libraries/javalib/kaffe/io/ByteToCharConverter.java	Wed Jan  7 16:49:11 2004
@@ -108,26 +108,16 @@
 	if (cls == noConverter) {
 		return (null);
 	}
-	else if (cls == useIconv) {
-		try {
-			return (new ByteToCharIconv (ConverterAlias.alias(enc)));
-		}
-		catch (UnsupportedEncodingException _) {
-			return (null);
-		}
+	if (cls == useIconv) {
+		return (getByteToCharIconv(ConverterAlias.alias(enc)));
 	}
 	try {
 		if (cls == null) {
 			String realenc = ConverterAlias.alias(enc);
 			if (ConverterAlias.shouldUseIconv(realenc)) {
-				try {
-					cache.put(enc, useIconv);
-					return (new ByteToCharIconv (realenc));
-				}
-				catch (UnsupportedEncodingException _) {
-					cache.put(enc, noConverter);
-					return (null);
-				}
+				ByteToCharConverter conv = getByteToCharIconv(realenc);
+				cache.put(enc, (conv != null ? useIconv : noConverter));
+				return (conv);
 			}
 			realenc = encodingRoot + ".ByteToChar" + realenc;
 			cls = Class.forName(realenc);
@@ -157,8 +147,19 @@
 	}
 	catch (InstantiationException _) {
 	}
-	cache.put(enc, noConverter);
-	return (null);
+	// Finally, try iconv.
+        ByteToCharConverter conv = getByteToCharIconv(ConverterAlias.alias(enc));
+	cache.put(enc, (conv != null ? useIconv : noConverter));
+	return (conv);
+}
+
+private static ByteToCharConverter getByteToCharIconv ( String enc ) {
+	try {
+		return (new ByteToCharIconv (enc));
+	}
+	catch (UnsupportedEncodingException _) {
+		return (null);
+	}
 }
 
 public static ByteToCharConverter getConverter ( String enc ) throws UnsupportedEncodingException {
@@ -166,7 +167,7 @@
 	if (conv != null) {
 		return (conv);
 	}
-	return new ByteToCharIconv (enc);
+	throw new UnsupportedEncodingException(enc);
 }
 public static ByteToCharConverter getDefault() {
 	try {
Index: kaffe/libraries/javalib/kaffe/io/CharToByteConverter.java
diff -u kaffe/libraries/javalib/kaffe/io/CharToByteConverter.java:1.15 kaffe/libraries/javalib/kaffe/io/CharToByteConverter.java:1.16
--- kaffe/libraries/javalib/kaffe/io/CharToByteConverter.java:1.15	Tue Jan  6 16:27:54 2004
+++ kaffe/libraries/javalib/kaffe/io/CharToByteConverter.java	Wed Jan  7 16:49:11 2004
@@ -86,26 +86,16 @@
 	if (cls == noConverter) {
 		return (null);
 	}
-	else if (cls == useIconv) {
-		try {
-			return (new CharToByteIconv (ConverterAlias.alias(enc)));
-		}
-		catch (UnsupportedEncodingException _) {
-			return (null);
-		}
+	if (cls == useIconv) {
+		return (getCharToByteIconv(ConverterAlias.alias(enc)));
 	}
 	try {
 		if (cls == null) {
 			String realenc = ConverterAlias.alias(enc);
 			if (ConverterAlias.shouldUseIconv(realenc)) {
-				try {
-					cache.put(enc, useIconv);
-					return (new CharToByteIconv (realenc));
-				}
-				catch (UnsupportedEncodingException _) {
-					cache.put(enc, noConverter);
-					return (null);
-				}
+				CharToByteConverter conv = getCharToByteIconv(realenc);
+				cache.put(enc, (conv != null ? useIconv : noConverter));
+				return (conv);
 			}
 			realenc = encodingRoot + ".CharToByte" + realenc;
 			cls = Class.forName(realenc);
@@ -135,8 +125,19 @@
 	}
 	catch (IllegalAccessException _) {
 	}
-	cache.put(enc, noConverter);
-	return (null);
+	// Finally, try iconv.
+	CharToByteConverter conv = getCharToByteIconv(ConverterAlias.alias(enc));
+	cache.put(enc, (conv != null ? useIconv : noConverter));
+	return (conv);
+}
+
+public static CharToByteConverter getCharToByteIconv(String enc) {
+	try {
+		return (new CharToByteIconv (enc));
+	}
+	catch (UnsupportedEncodingException _) {
+		return (null);
+	}
 }
 
 public static CharToByteConverter getConverter(String enc) throws UnsupportedEncodingException {
@@ -144,7 +145,7 @@
 	if (conv != null) {
 		return (conv);
 	}
-	return new CharToByteIconv (enc);
+	throw new UnsupportedEncodingException(enc);
 }
 
 public static CharToByteConverter getDefault() {