From 8a0383655d7d869ef9d344202c78ce3659927052 Mon Sep 17 00:00:00 2001 From: tromey Date: Tue, 3 Jan 2006 22:58:31 +0000 Subject: PR libgcj/9715, PR libgcj/19132: * java/nio/charset/Charset.java (charsetForName): Try default provider first. (availableCharsets): Re-merged. (providers2): Likewise. (defaultCharset): Likewise. * sources.am, Makefile.in: Rebuilt. * gnu/java/nio/charset/Provider.java: Removed. * java/io/OutputStreamWriter.java (OutputStreamWriter(OutputStream,Charset)): New constructor. (OutputStreamWriter(OutputStream,CharsetEncoder)): Likewise. * java/io/InputStreamReader.java (InputStreamReader(InputStream,CharsetDecoder)): New constructor. (InputStreamReader(InputStream,Charset)): Likewise. * gnu/gcj/convert/BytesToUnicode.java (getDecoder): Try a BytesToCharsetAdaptor. * gnu/gcj/convert/UnicodeToBytes.java (getEncoder): Try a CharsetToBytesAdaptor. * gnu/gcj/convert/CharsetToBytesAdaptor.java: New file. * gnu/gcj/convert/BytesToCharsetAdaptor.java: New file. * mauve-libgcj: Remove getEncoding exclusion. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@109294 138bc75d-0d04-0410-961f-82ee72b054a4 --- libjava/gnu/gcj/convert/UnicodeToBytes.java | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) (limited to 'libjava/gnu/gcj/convert/UnicodeToBytes.java') diff --git a/libjava/gnu/gcj/convert/UnicodeToBytes.java b/libjava/gnu/gcj/convert/UnicodeToBytes.java index b1432586ce5..8522bec117a 100644 --- a/libjava/gnu/gcj/convert/UnicodeToBytes.java +++ b/libjava/gnu/gcj/convert/UnicodeToBytes.java @@ -1,4 +1,4 @@ -/* Copyright (C) 1999, 2000, 2001, 2003 Free Software Foundation +/* Copyright (C) 1999, 2000, 2001, 2003, 2005 Free Software Foundation This file is part of libgcj. @@ -8,6 +8,8 @@ details. */ package gnu.gcj.convert; +import java.nio.charset.Charset; + public abstract class UnicodeToBytes extends IOConverter { /** Buffer to emit bytes to. @@ -99,10 +101,22 @@ public abstract class UnicodeToBytes extends IOConverter catch (Throwable ex) { try - { + { // We pass the original name to iconv and let it handle - // its own aliasing. + // its own aliasing. Note that we intentionally prefer + // iconv over nio. return new Output_iconv (encoding); + } + catch (Throwable _) + { + // Ignore, and try the next method. + } + try + { + // Try using finding java.nio.charset.Charset and using + // the adaptor. Use the original name as Charsets have + // their own canonical names. + return new CharsetToBytesAdaptor(Charset.forName(encoding)); } catch (Throwable _) { -- cgit v1.2.3