aboutsummaryrefslogtreecommitdiff
path: root/libjava/java
diff options
context:
space:
mode:
authorTom Tromey <tromey@cygnus.com>2000-09-11 00:35:51 +0000
committerTom Tromey <tromey@gcc.gnu.org>2000-09-11 00:35:51 +0000
commitfe5e3b9714a2ef529f5d514dab61747137c89527 (patch)
treed6ef4d43356f135ad560160ab4778b15006bb771 /libjava/java
parent56cb97339bc91ec1b4df74a8bb4a31d4c363aee2 (diff)
downloadgcc-fe5e3b9714a2ef529f5d514dab61747137c89527.zip
gcc-fe5e3b9714a2ef529f5d514dab61747137c89527.tar.gz
gcc-fe5e3b9714a2ef529f5d514dab61747137c89527.tar.bz2
BytesToUnicode.java (getDefaultDecoder): Let default decoder use iconv.
* gnu/gcj/convert/BytesToUnicode.java (getDefaultDecoder): Let default decoder use iconv. * gnu/gcj/convert/UnicodeToBytes.java (getDefaultEncoder): Let default encoder use iconv. * configure: Rebuilt. * configure.in: Check for nl_langinfo and <langinfo.h>. * java/lang/natSystem.cc (file_encoding): New function. (DEFAULT_FILE_ENCODING): Define to file_encoding() if possible. From-SVN: r36306
Diffstat (limited to 'libjava/java')
-rw-r--r--libjava/java/lang/natSystem.cc21
1 files changed, 21 insertions, 0 deletions
diff --git a/libjava/java/lang/natSystem.cc b/libjava/java/lang/natSystem.cc
index 1ea29b3..ca75430 100644
--- a/libjava/java/lang/natSystem.cc
+++ b/libjava/java/lang/natSystem.cc
@@ -24,6 +24,10 @@ details. */
#include <sys/utsname.h>
#endif
+#ifdef HAVE_LANGINFO_H
+#include <langinfo.h>
+#endif
+
#include <gcj/cni.h>
#include <jvm.h>
#include <java-props.h>
@@ -151,9 +155,26 @@ java::lang::System::identityHashCode (jobject obj)
return _Jv_HashCode (obj);
}
+#if ! defined (DEFAULT_FILE_ENCODING) && defined (HAVE_ICONV) \
+ && defined (HAVE_NL_LANGINFO)
+
+static char *
+file_encoding ()
+{
+ setlocale (LC_CTYPE, "");
+ char *e = nl_langinfo (CODESET);
+ if (e == NULL || *e == '\0')
+ e = "8859_1";
+}
+
+#define DEFAULT_FILE_ENCODING file_encoding ()
+
+#endif
+
#ifndef DEFAULT_FILE_ENCODING
#define DEFAULT_FILE_ENCODING "8859_1"
#endif
+
static char *default_file_encoding = DEFAULT_FILE_ENCODING;
#if HAVE_GETPWUID_R