From: Bruno Haible Date: Tue, 12 Dec 2006 14:12:18 +0000 (+0000) Subject: New macro gt_LOCALE_JA. X-Git-Tag: v0.17~604 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a6ca6d2e466ffdcdefb71f6aa4b6395c3810218a;p=thirdparty%2Fgettext.git New macro gt_LOCALE_JA. --- diff --git a/gettext-tools/ChangeLog b/gettext-tools/ChangeLog index 78e9b833a..c6083f1a9 100644 --- a/gettext-tools/ChangeLog +++ b/gettext-tools/ChangeLog @@ -1,3 +1,7 @@ +2006-12-10 Bruno Haible + + * configure.ac: Invoke gt_LOCALE_JA. + 2006-10-27 Bruno Haible Work around automake-1.10 annoyance. diff --git a/gettext-tools/configure.ac b/gettext-tools/configure.ac index 638c32ea9..6ca0f61d6 100644 --- a/gettext-tools/configure.ac +++ b/gettext-tools/configure.ac @@ -289,10 +289,11 @@ dnl Check for tools needed for formatting man pages. CROSS_COMPILING=$cross_compiling AC_SUBST(CROSS_COMPILING) -dnl Checks for optional programs for the tests/lang-* tests. +dnl Checks for optional programs for the tests/lang-*, tests/recode-* tests. gt_PROG_ANSI_CXX gt_LOCALE_FR gt_LOCALE_FR_UTF8 +gt_LOCALE_JA dnl Check whether to execute tests that rely on libasprintf. dnl This test must be consistent with gettext-runtime/configure.ac. diff --git a/gettext-tools/m4/ChangeLog b/gettext-tools/m4/ChangeLog index 7f0f3d615..eb53dccc7 100644 --- a/gettext-tools/m4/ChangeLog +++ b/gettext-tools/m4/ChangeLog @@ -1,3 +1,8 @@ +2006-12-10 Bruno Haible + + * locale-ja.m4: New file. + * Makefile.am (EXTRA_DIST): Add it. + 2006-11-27 Bruno Haible * gettext-0.16.1 released. diff --git a/gettext-tools/m4/Makefile.am b/gettext-tools/m4/Makefile.am index 21a4fbb88..68c631a17 100644 --- a/gettext-tools/m4/Makefile.am +++ b/gettext-tools/m4/Makefile.am @@ -48,6 +48,7 @@ EXTRA_DIST = README csharpexec-test.exe \ hostname.m4 \ libgrep.m4 \ locale-fr.m4 \ +locale-ja.m4 \ openmp.m4 \ regex.m4 \ setlocale.m4 \ diff --git a/gettext-tools/m4/locale-ja.m4 b/gettext-tools/m4/locale-ja.m4 new file mode 100644 index 000000000..cf065dd79 --- /dev/null +++ b/gettext-tools/m4/locale-ja.m4 @@ -0,0 +1,105 @@ +# locale-ja.m4 serial 1 (gettext-0.16.2) +dnl Copyright (C) 2003, 2005-2006 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl From Bruno Haible. + +dnl Determine the name of a japanese locale with EUC-JP encoding. +AC_DEFUN([gt_LOCALE_JA], +[ + AC_REQUIRE([AC_CANONICAL_HOST]) + AC_REQUIRE([AM_LANGINFO_CODESET]) + AC_CACHE_CHECK([for a traditional japanese locale], gt_cv_locale_ja, [ + macosx= + case "$host_os" in + darwin[56]*) ;; + darwin*) macosx=yes;; + esac + if test -n "$macosx"; then + # On Darwin 7 (MacOS X), the libc supports some locales in non-UTF-8 + # encodings, but the kernel does not support them. 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." + # See the comments in config.charset. Therefore we bypass the test. + gt_cv_locale_ja=none + else + AC_LANG_CONFTEST([AC_LANG_SOURCE([ +changequote(,)dnl +#include +#include +#if HAVE_LANGINFO_CODESET +# include +#endif +struct tm t; +char buf[16]; +int main () +{ + const char *p; + /* Check whether the given locale name is recognized by the system. */ + if (setlocale (LC_ALL, "") == NULL) return 1; + /* Check whether nl_langinfo(CODESET) is nonempty. + On MacOS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET) + is empty, and the behaviour of Tcl 8.4 in this locale is not useful. */ +#if HAVE_LANGINFO_CODESET + if (nl_langinfo (CODESET) [0] == '\0') return 1; +#endif + /* Check whether in a month name, no byte in the range 0x80..0x9F occurs. + This excludes the UTF-8 encoding. */ + t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4; + if (strftime (buf, sizeof (buf), "%B", &t) < 2) return 1; + for (p = buf; *p != '\0'; p++) + if ((unsigned char) *p >= 0x80 && (unsigned char) *p < 0xa0) + return 1; + return 0; +} +changequote([,])dnl + ])]) + if AC_TRY_EVAL([ac_link]) && test -s conftest$ac_exeext; then + # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because + # otherwise on MacOS X 10.3.5 the LC_TIME=C from the beginning of the + # configure script would override the LC_ALL setting. Likewise for + # LC_CTYPE, which is also set at the beginning of the configure script. + # Test for the AIX locale name. + if (LC_ALL=ja_JP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then + gt_cv_locale_ja=ja_JP + else + # Test for the locale name with explicit encoding suffix. + if (LC_ALL=ja_JP.EUC-JP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then + gt_cv_locale_ja=ja_JP.EUC-JP + else + # Test for the HP-UX, OSF/1, NetBSD locale name. + if (LC_ALL=ja_JP.eucJP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then + gt_cv_locale_ja=ja_JP.eucJP + else + # Test for the IRIX, FreeBSD locale name. + if (LC_ALL=ja_JP.EUC LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then + gt_cv_locale_ja=ja_JP.EUC + else + # Test for the Solaris 7 locale name. + if (LC_ALL=ja LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then + gt_cv_locale_ja=ja + else + # Special test for NetBSD 1.6. + if test -f /usr/share/locale/ja_JP.eucJP/LC_CTYPE; then + gt_cv_locale_ja=ja_JP.eucJP + else + # None found. + gt_cv_locale_ja=none + fi + fi + fi + fi + fi + fi + fi + rm -fr conftest* + fi + ]) + LOCALE_JA=$gt_cv_locale_ja + AC_SUBST([LOCALE_JA]) +]) diff --git a/gettext-tools/tests/ChangeLog b/gettext-tools/tests/ChangeLog index d4edb695e..fc82de3bc 100644 --- a/gettext-tools/tests/ChangeLog +++ b/gettext-tools/tests/ChangeLog @@ -1,3 +1,10 @@ +2006-12-10 Bruno Haible + + Fix a test failure on Solaris. + * Makefile.am (TESTS_ENVIRONMENT): Also set LOCALE_JA. + * recode-sr-latin-2: Use the LOCALE_JA value from the Makefile, + instead of using the 'testlocale' program. + 2006-11-12 Bruno Haible * msgcat-15: Update expected test output. diff --git a/gettext-tools/tests/Makefile.am b/gettext-tools/tests/Makefile.am index 72dd48f5a..caa779944 100644 --- a/gettext-tools/tests/Makefile.am +++ b/gettext-tools/tests/Makefile.am @@ -173,6 +173,7 @@ TESTS_ENVIRONMENT = top_srcdir=$(top_srcdir) \ TESTLIBASPRINTF='@TESTLIBASPRINTF@' \ LOCALE_FR='@LOCALE_FR@' \ LOCALE_FR_UTF8='@LOCALE_FR_UTF8@' \ + LOCALE_JA='@LOCALE_JA@' \ host_os='@host_os@' \ CONFIG_SHELL='$(SHELL)' \ $(SHELL) diff --git a/gettext-tools/tests/recode-sr-latin-2 b/gettext-tools/tests/recode-sr-latin-2 index 84cc84e5a..539328478 100755 --- a/gettext-tools/tests/recode-sr-latin-2 +++ b/gettext-tools/tests/recode-sr-latin-2 @@ -8,25 +8,16 @@ tmpfiles="" trap 'rm -fr $tmpfiles' 1 2 3 15 # Test whether a specific EUC-JP locale is installed. -case "$host_os" in - aix*) - LOCALE_JA_EUCJP=ja_JP ;; - hpux* | osf* | netbsd*) - LOCALE_JA_EUCJP=ja_JP.eucJP ;; - irix* | freebsd* | darwin*) - LOCALE_JA_EUCJP=ja_JP.EUC ;; - *) - LOCALE_JA_EUCJP=ja_JP.EUC-JP ;; -esac -if test $LOCALE_JA_EUCJP != none; then - LC_ALL=$LOCALE_JA_EUCJP ./testlocale 2>/dev/null - case $? in - 0) ;; - 77) LOCALE_JA_EUCJP=none;; - *) exit 1;; - esac -fi -if test $LOCALE_JA_EUCJP = none; then +: ${LOCALE_JA=ja_JP} +#if test $LOCALE_JA != none; then +# LC_ALL=$LOCALE_JA ./testlocale 2>/dev/null +# case $? in +# 0) ;; +# 77) LOCALE_JA=none;; +# *) exit 1;; +# esac +#fi +if test $LOCALE_JA = none; then if test -f /usr/bin/localedef; then echo "Skipping test: no japanese EUC-JP locale is installed" else @@ -37,13 +28,13 @@ fi # Test whether locale_charset() in this locale really returns EUC-JP. # (On some systems, config.charset supports only UTF-8 locales.) -case "$host_os" in - darwin[56]*) ;; - darwin* | beos*) - echo "Skipping test: no EUC-JP locale is supported" - rm -fr $tmpfiles; exit 77 - ;; -esac +#case "$host_os" in +# darwin[56]*) ;; +# darwin* | beos*) +# echo "Skipping test: no EUC-JP locale is supported" +# rm -fr $tmpfiles; exit 77 +# ;; +#esac tmpfiles="$tmpfiles rec-srl-2.in" cat <<\EOF > rec-srl-2.in @@ -53,7 +44,7 @@ EOF tmpfiles="$tmpfiles rec-srl-2.out" : ${RECODE=recode} -LC_ALL=$LOCALE_JA_EUCJP \ +LC_ALL=$LOCALE_JA \ ${RECODE}-sr-latin < rec-srl-2.in > rec-srl-2.out \ || { rm -fr $tmpfiles; exit 1; }