summaryrefslogtreecommitdiffstats
path: root/gl/m4/locale-fr.m4
diff options
context:
space:
mode:
Diffstat (limited to 'gl/m4/locale-fr.m4')
-rw-r--r--gl/m4/locale-fr.m4161
1 files changed, 113 insertions, 48 deletions
diff --git a/gl/m4/locale-fr.m4 b/gl/m4/locale-fr.m4
index 001f5390..ef199e39 100644
--- a/gl/m4/locale-fr.m4
+++ b/gl/m4/locale-fr.m4
@@ -1,5 +1,5 @@
1# locale-fr.m4 serial 11 1# locale-fr.m4 serial 17
2dnl Copyright (C) 2003, 2005-2010 Free Software Foundation, Inc. 2dnl Copyright (C) 2003, 2005-2013 Free Software Foundation, Inc.
3dnl This file is free software; the Free Software Foundation 3dnl This file is free software; the Free Software Foundation
4dnl gives unlimited permission to copy and/or distribute it, 4dnl gives unlimited permission to copy and/or distribute it,
5dnl with or without modifications, as long as this notice is preserved. 5dnl with or without modifications, as long as this notice is preserved.
@@ -25,17 +25,30 @@ struct tm t;
25char buf[16]; 25char buf[16];
26int main () { 26int main () {
27 /* Check whether the given locale name is recognized by the system. */ 27 /* Check whether the given locale name is recognized by the system. */
28#if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
29 /* On native Windows, setlocale(category, "") looks at the system settings,
30 not at the environment variables. Also, when an encoding suffix such
31 as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
32 category of the locale to "C". */
33 if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
34 || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
35 return 1;
36#else
28 if (setlocale (LC_ALL, "") == NULL) return 1; 37 if (setlocale (LC_ALL, "") == NULL) return 1;
38#endif
29 /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646". 39 /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
30 On MacOS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET) 40 On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
31 is empty, and the behaviour of Tcl 8.4 in this locale is not useful. 41 is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
32 On OpenBSD 4.0, when an unsupported locale is specified, setlocale() 42 On OpenBSD 4.0, when an unsupported locale is specified, setlocale()
33 succeeds but then nl_langinfo(CODESET) is "646". In this situation, 43 succeeds but then nl_langinfo(CODESET) is "646". In this situation,
34 some unit tests fail. */ 44 some unit tests fail.
45 On MirBSD 10, when an unsupported locale is specified, setlocale()
46 succeeds but then nl_langinfo(CODESET) is "UTF-8". */
35#if HAVE_LANGINFO_CODESET 47#if HAVE_LANGINFO_CODESET
36 { 48 {
37 const char *cs = nl_langinfo (CODESET); 49 const char *cs = nl_langinfo (CODESET);
38 if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0) 50 if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0
51 || strcmp (cs, "UTF-8") == 0)
39 return 1; 52 return 1;
40 } 53 }
41#endif 54#endif
@@ -50,46 +63,67 @@ int main () {
50 one byte long. This excludes the UTF-8 encoding. */ 63 one byte long. This excludes the UTF-8 encoding. */
51 t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4; 64 t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
52 if (strftime (buf, sizeof (buf), "%b", &t) < 3 || buf[2] != 'v') return 1; 65 if (strftime (buf, sizeof (buf), "%b", &t) < 3 || buf[2] != 'v') return 1;
66#if !defined __BIONIC__ /* Bionic libc's 'struct lconv' is just a dummy. */
53 /* Check whether the decimal separator is a comma. 67 /* Check whether the decimal separator is a comma.
54 On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point 68 On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point
55 are nl_langinfo(RADIXCHAR) are both ".". */ 69 are nl_langinfo(RADIXCHAR) are both ".". */
56 if (localeconv () ->decimal_point[0] != ',') return 1; 70 if (localeconv () ->decimal_point[0] != ',') return 1;
71#endif
57 return 0; 72 return 0;
58} 73}
59changequote([,])dnl 74changequote([,])dnl
60 ])]) 75 ])])
61 if AC_TRY_EVAL([ac_link]) && test -s conftest$ac_exeext; then 76 if AC_TRY_EVAL([ac_link]) && test -s conftest$ac_exeext; then
62 # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because 77 case "$host_os" in
63 # otherwise on MacOS X 10.3.5 the LC_TIME=C from the beginning of the 78 # Handle native Windows specially, because there setlocale() interprets
64 # configure script would override the LC_ALL setting. Likewise for 79 # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256",
65 # LC_CTYPE, which is also set at the beginning of the configure script. 80 # "fr" or "fra" as "French" or "French_France.1252",
66 # Test for the usual locale name. 81 # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252",
67 if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then 82 # "ja" as "Japanese" or "Japanese_Japan.932",
68 gt_cv_locale_fr=fr_FR 83 # and similar.
69 else 84 mingw*)
70 # Test for the locale name with explicit encoding suffix. 85 # Test for the native Windows locale name.
71 if (LC_ALL=fr_FR.ISO-8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then 86 if (LC_ALL=French_France.1252 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
72 gt_cv_locale_fr=fr_FR.ISO-8859-1 87 gt_cv_locale_fr=French_France.1252
73 else
74 # Test for the AIX, OSF/1, FreeBSD, NetBSD, OpenBSD locale name.
75 if (LC_ALL=fr_FR.ISO8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
76 gt_cv_locale_fr=fr_FR.ISO8859-1
77 else 88 else
78 # Test for the HP-UX locale name. 89 # None found.
79 if (LC_ALL=fr_FR.iso88591 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then 90 gt_cv_locale_fr=none
80 gt_cv_locale_fr=fr_FR.iso88591 91 fi
92 ;;
93 *)
94 # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
95 # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the
96 # configure script would override the LC_ALL setting. Likewise for
97 # LC_CTYPE, which is also set at the beginning of the configure script.
98 # Test for the usual locale name.
99 if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
100 gt_cv_locale_fr=fr_FR
101 else
102 # Test for the locale name with explicit encoding suffix.
103 if (LC_ALL=fr_FR.ISO-8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
104 gt_cv_locale_fr=fr_FR.ISO-8859-1
81 else 105 else
82 # Test for the Solaris 7 locale name. 106 # Test for the AIX, OSF/1, FreeBSD, NetBSD, OpenBSD locale name.
83 if (LC_ALL=fr LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then 107 if (LC_ALL=fr_FR.ISO8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
84 gt_cv_locale_fr=fr 108 gt_cv_locale_fr=fr_FR.ISO8859-1
85 else 109 else
86 # None found. 110 # Test for the HP-UX locale name.
87 gt_cv_locale_fr=none 111 if (LC_ALL=fr_FR.iso88591 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
112 gt_cv_locale_fr=fr_FR.iso88591
113 else
114 # Test for the Solaris 7 locale name.
115 if (LC_ALL=fr LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
116 gt_cv_locale_fr=fr
117 else
118 # None found.
119 gt_cv_locale_fr=none
120 fi
121 fi
88 fi 122 fi
89 fi 123 fi
90 fi 124 fi
91 fi 125 ;;
92 fi 126 esac
93 fi 127 fi
94 rm -fr conftest* 128 rm -fr conftest*
95 ]) 129 ])
@@ -119,9 +153,19 @@ int main () {
119 variables, and all locales use the UTF-8 encoding. */ 153 variables, and all locales use the UTF-8 encoding. */
120#if !(defined __BEOS__ || defined __HAIKU__) 154#if !(defined __BEOS__ || defined __HAIKU__)
121 /* Check whether the given locale name is recognized by the system. */ 155 /* Check whether the given locale name is recognized by the system. */
156# if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
157 /* On native Windows, setlocale(category, "") looks at the system settings,
158 not at the environment variables. Also, when an encoding suffix such
159 as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE
160 category of the locale to "C". */
161 if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
162 || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
163 return 1;
164# else
122 if (setlocale (LC_ALL, "") == NULL) return 1; 165 if (setlocale (LC_ALL, "") == NULL) return 1;
166# endif
123 /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646". 167 /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646".
124 On MacOS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET) 168 On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET)
125 is empty, and the behaviour of Tcl 8.4 in this locale is not useful. 169 is empty, and the behaviour of Tcl 8.4 in this locale is not useful.
126 On OpenBSD 4.0, when an unsupported locale is specified, setlocale() 170 On OpenBSD 4.0, when an unsupported locale is specified, setlocale()
127 succeeds but then nl_langinfo(CODESET) is "646". In this situation, 171 succeeds but then nl_langinfo(CODESET) is "646". In this situation,
@@ -147,36 +191,57 @@ int main () {
147 || buf[1] != (char) 0xc3 || buf[2] != (char) 0xa9 || buf[3] != 'v') 191 || buf[1] != (char) 0xc3 || buf[2] != (char) 0xa9 || buf[3] != 'v')
148 return 1; 192 return 1;
149#endif 193#endif
194#if !defined __BIONIC__ /* Bionic libc's 'struct lconv' is just a dummy. */
150 /* Check whether the decimal separator is a comma. 195 /* Check whether the decimal separator is a comma.
151 On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point 196 On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point
152 are nl_langinfo(RADIXCHAR) are both ".". */ 197 are nl_langinfo(RADIXCHAR) are both ".". */
153 if (localeconv () ->decimal_point[0] != ',') return 1; 198 if (localeconv () ->decimal_point[0] != ',') return 1;
199#endif
154 return 0; 200 return 0;
155} 201}
156changequote([,])dnl 202changequote([,])dnl
157 ])]) 203 ])])
158 if AC_TRY_EVAL([ac_link]) && test -s conftest$ac_exeext; then 204 if AC_TRY_EVAL([ac_link]) && test -s conftest$ac_exeext; then
159 # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because 205 case "$host_os" in
160 # otherwise on MacOS X 10.3.5 the LC_TIME=C from the beginning of the 206 # Handle native Windows specially, because there setlocale() interprets
161 # configure script would override the LC_ALL setting. Likewise for 207 # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256",
162 # LC_CTYPE, which is also set at the beginning of the configure script. 208 # "fr" or "fra" as "French" or "French_France.1252",
163 # Test for the usual locale name. 209 # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252",
164 if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then 210 # "ja" as "Japanese" or "Japanese_Japan.932",
165 gt_cv_locale_fr_utf8=fr_FR 211 # and similar.
166 else 212 mingw*)
167 # Test for the locale name with explicit encoding suffix. 213 # Test for the hypothetical native Windows locale name.
168 if (LC_ALL=fr_FR.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then 214 if (LC_ALL=French_France.65001 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
169 gt_cv_locale_fr_utf8=fr_FR.UTF-8 215 gt_cv_locale_fr_utf8=French_France.65001
170 else
171 # Test for the Solaris 7 locale name.
172 if (LC_ALL=fr.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
173 gt_cv_locale_fr_utf8=fr.UTF-8
174 else 216 else
175 # None found. 217 # None found.
176 gt_cv_locale_fr_utf8=none 218 gt_cv_locale_fr_utf8=none
177 fi 219 fi
178 fi 220 ;;
179 fi 221 *)
222 # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because
223 # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the
224 # configure script would override the LC_ALL setting. Likewise for
225 # LC_CTYPE, which is also set at the beginning of the configure script.
226 # Test for the usual locale name.
227 if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
228 gt_cv_locale_fr_utf8=fr_FR
229 else
230 # Test for the locale name with explicit encoding suffix.
231 if (LC_ALL=fr_FR.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
232 gt_cv_locale_fr_utf8=fr_FR.UTF-8
233 else
234 # Test for the Solaris 7 locale name.
235 if (LC_ALL=fr.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
236 gt_cv_locale_fr_utf8=fr.UTF-8
237 else
238 # None found.
239 gt_cv_locale_fr_utf8=none
240 fi
241 fi
242 fi
243 ;;
244 esac
180 fi 245 fi
181 rm -fr conftest* 246 rm -fr conftest*
182 ]) 247 ])