X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=m4%2Flocale-fr.m4;h=5bdd2ca57c1a8f547effad033843101a526043f3;hb=b52ae09f3a74d02e4f203c4b7703416d3b3b5461;hp=b363898ffe0f0cf85d4402ad2ed4cba0584fd204;hpb=6c15e3c370c4eb1b06cc1e185fe2820c4596b2e2;p=gnulib.git diff --git a/m4/locale-fr.m4 b/m4/locale-fr.m4 index b363898ff..5bdd2ca57 100644 --- a/m4/locale-fr.m4 +++ b/m4/locale-fr.m4 @@ -1,5 +1,5 @@ -# locale-fr.m4 serial 6 (gettext-0.16.2) -dnl Copyright (C) 2003, 2005-2007 Free Software Foundation, Inc. +# locale-fr.m4 serial 8 +dnl Copyright (C) 2003, 2005-2008 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. @@ -37,16 +37,31 @@ changequote(,)dnl #if HAVE_LANGINFO_CODESET # include #endif +#include +#include struct tm t; char buf[16]; int main () { /* 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. + /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646". 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. */ + is empty, and the behaviour of Tcl 8.4 in this locale is not useful. + On OpenBSD 4.0, when an unsupported locale is specified, setlocale() + succeeds but then nl_langinfo(CODESET) is "646". In this situation, + some unit tests fail. */ #if HAVE_LANGINFO_CODESET - if (nl_langinfo (CODESET) [0] == '\0') return 1; + { + const char *cs = nl_langinfo (CODESET); + if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0) + return 1; + } +#endif +#ifdef __CYGWIN__ + /* On Cygwin, avoid locale names without encoding suffix, because the + locale_charset() function relies on the encoding suffix. Note that + LC_ALL is set on the command line. */ + if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1; #endif /* Check whether in the abbreviation of the second month, the second character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is only @@ -86,13 +101,8 @@ changequote([,])dnl if (LC_ALL=fr LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr=fr else - # Special test for NetBSD 1.6. - if test -f /usr/share/locale/fr_FR.ISO8859-1/LC_CTYPE; then - gt_cv_locale_fr=fr_FR.ISO8859-1 - else - # None found. - gt_cv_locale_fr=none - fi + # None found. + gt_cv_locale_fr=none fi fi fi @@ -118,6 +128,8 @@ changequote(,)dnl #if HAVE_LANGINFO_CODESET # include #endif +#include +#include struct tm t; char buf[16]; int main () { @@ -127,11 +139,24 @@ int main () { #if !defined(__BEOS__) /* 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. + /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646". 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. */ + is empty, and the behaviour of Tcl 8.4 in this locale is not useful. + On OpenBSD 4.0, when an unsupported locale is specified, setlocale() + succeeds but then nl_langinfo(CODESET) is "646". In this situation, + some unit tests fail. */ # if HAVE_LANGINFO_CODESET - if (nl_langinfo (CODESET) [0] == '\0') return 1; + { + const char *cs = nl_langinfo (CODESET); + if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0) + return 1; + } +# endif +# ifdef __CYGWIN__ + /* On Cygwin, avoid locale names without encoding suffix, because the + locale_charset() function relies on the encoding suffix. Note that + LC_ALL is set on the command line. */ + if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1; # endif /* Check whether in the abbreviation of the second month, the second character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is