changeset 5658:9d475f8488d9

Update from GNU gettext 0.14.2.
author Bruno Haible <bruno@clisp.org>
date Thu, 24 Feb 2005 19:54:14 +0000
parents dcc4f0b90f85
children be44f23226e0
files lib/ChangeLog lib/config.charset lib/localcharset.c
diffstat 3 files changed, 48 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/lib/ChangeLog
+++ b/lib/ChangeLog
@@ -1,3 +1,8 @@
+2005-02-24  Bruno Haible  <bruno@clisp.org>
+
+	* localcharset.c: Update from GNU gettext 0.14.2.
+	* config.charset: Update from GNU gettext 0.14.2.
+
 2005-02-22  Simon Josefsson  <jas@extundo.com>
 
 	* iconvme.h, iconvme.c: New files, from libc.
--- a/lib/config.charset
+++ b/lib/config.charset
@@ -37,12 +37,12 @@
 #   ISO-8859-4              Y   osf solaris freebsd darwin
 #   ISO-8859-5              Y   glibc aix hpux irix osf solaris freebsd darwin
 #   ISO-8859-6              Y   glibc aix hpux solaris
-#   ISO-8859-7              Y   glibc aix hpux irix osf solaris
+#   ISO-8859-7              Y   glibc aix hpux irix osf solaris darwin
 #   ISO-8859-8              Y   glibc aix hpux osf solaris
-#   ISO-8859-9              Y   glibc aix hpux irix osf solaris
-#   ISO-8859-13                 glibc
+#   ISO-8859-9              Y   glibc aix hpux irix osf solaris darwin
+#   ISO-8859-13                 glibc darwin
 #   ISO-8859-14                 glibc
-#   ISO-8859-15                 glibc aix osf solaris freebsd
+#   ISO-8859-15                 glibc aix osf solaris freebsd darwin
 #   KOI8-R                  Y   glibc solaris freebsd darwin
 #   KOI8-U                  Y   glibc freebsd darwin
 #   KOI8-T                      glibc
@@ -99,7 +99,7 @@
 #   HP-KANA8                    hpux
 #   DEC-KANJI                   osf
 #   DEC-HANYU                   osf
-#   UTF-8                   Y   glibc aix hpux osf solaris
+#   UTF-8                   Y   glibc aix hpux osf solaris darwin
 #
 # Note: Names which are not marked as being a MIME name should not be used in
 # Internet protocols for information interchange (mail, news, etc.).
@@ -395,7 +395,7 @@
 	echo "BIG5 BIG5"
 	echo "SJIS SHIFT_JIS"
 	;;
-    darwin*)
+    darwin[56]*)
 	# Darwin 6.8 doesn't have nl_langinfo(CODESET); therefore
 	# localcharset.c falls back to using the full locale name
 	# from the environment variables.
@@ -436,6 +436,36 @@
 	echo "ja_JP.SJIS SHIFT_JIS"
 	echo "ko_KR.EUC EUC-KR"
 	;;
+    darwin*)
+	# Darwin 7.5 has nl_langinfo(CODESET), but it is useless:
+	# - It returns the empty string when LANG is set to a locale of the
+	#   form ll_CC, although ll_CC/LC_CTYPE is a symlink to an UTF-8
+	#   LC_CTYPE file.
+	# - The environment variables LANG, LC_CTYPE, LC_ALL are not set by
+	#   the system; nl_langinfo(CODESET) returns "US-ASCII" in this case.
+	# - The documentation says:
+	#     "... all code that calls BSD system routines should ensure
+	#      that the const *char parameters of these routines are in UTF-8
+	#      encoding. All BSD system functions expect their string
+	#      parameters to be in UTF-8 encoding and nothing else."
+	#   It also says
+	#     "An additional caveat is that string parameters for files,
+	#      paths, and other file-system entities must be in canonical
+	#      UTF-8. In a canonical UTF-8 Unicode string, all decomposable
+	#      characters are decomposed ..."
+	#   but this is not true: You can pass non-decomposed UTF-8 strings
+	#   to file system functions, and it is the OS which will convert
+	#   them to decomposed UTF-8 before accessing the file system.
+	# - The Apple Terminal application displays UTF-8 by default.
+	# - However, other applications are free to use different encodings:
+	#   - xterm uses ISO-8859-1 by default.
+	#   - TextEdit uses MacRoman by default.
+	# We prefer UTF-8 over decomposed UTF-8-MAC because one should
+	# minimize the use of decomposed Unicode. Unfortunately, through the
+	# Darwin file system, decomposed UTF-8 strings are leaked into user
+	# space nevertheless.
+	echo "* UTF-8"
+	;;
     beos*)
 	# BeOS has a single locale, and it has UTF-8 encoding.
 	echo "* UTF-8"
--- a/lib/localcharset.c
+++ b/lib/localcharset.c
@@ -115,10 +115,16 @@
     {
 #if !(defined VMS || defined WIN32)
       FILE *fp;
-      const char *dir = relocate (LIBDIR);
+      const char *dir;
       const char *base = "charset.alias";
       char *file_name;
 
+      /* Make it possible to override the charset.alias location.  This is
+	 necessary for running the testsuite before "make install".  */
+      dir = getenv ("CHARSETALIASDIR");
+      if (dir == NULL || dir[0] == '\0')
+	dir = relocate (LIBDIR);
+
       /* Concatenate dir and base into freshly allocated file_name.  */
       {
 	size_t dir_len = strlen (dir);