From d427c96ee152df514e6eb0f73dd4f65021961bca Mon Sep 17 00:00:00 2001 From: Bruno Haible Date: Thu, 24 Feb 2005 19:54:14 +0000 Subject: [PATCH] Update from GNU gettext 0.14.2. --- lib/ChangeLog | 5 +++++ lib/config.charset | 42 ++++++++++++++++++++++++++++++++++++------ lib/localcharset.c | 8 +++++++- 3 files changed, 48 insertions(+), 7 deletions(-) diff --git a/lib/ChangeLog b/lib/ChangeLog index c82fdf59f5..762ac3c619 100644 --- a/lib/ChangeLog +++ b/lib/ChangeLog @@ -1,3 +1,8 @@ +2005-02-24 Bruno Haible + + * localcharset.c: Update from GNU gettext 0.14.2. + * config.charset: Update from GNU gettext 0.14.2. + 2005-02-22 Simon Josefsson * iconvme.h, iconvme.c: New files, from libc. diff --git a/lib/config.charset b/lib/config.charset index c80608af8f..b3ce2ba939 100755 --- 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 @@ case "$os" in 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 @@ case "$os" in 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" diff --git a/lib/localcharset.c b/lib/localcharset.c index 66099d5e31..662f3ad336 100644 --- a/lib/localcharset.c +++ b/lib/localcharset.c @@ -115,10 +115,16 @@ get_charset_aliases () { #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); -- 2.30.2