blob: ff89319c78adc2ebf7e3ee546c7467f6db17856a (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
# if defined __APPLE__ && defined __MACH__
# include <xlocale.h>
# endif
# if (__GLIBC__ >= 2 && !defined __UCLIBC__) || defined __CYGWIN__
# if (defined __linux__ && !defined __UCLIBC__) || defined __CYGWIN__
# include <langinfo.h>
# endif
# if !defined IN_LIBINTL
--- coreutils-8.27/gnulib-tests/localename.c.old 2016-12-31 13:54:43.000000000 +0000
+++ coreutils-8.27/gnulib-tests/localename.c 2017-07-30 16:40:47.098541270 +0000
@@ -2692,16 +2692,19 @@
locale_t thread_locale = uselocale (NULL);
if (thread_locale != LC_GLOBAL_LOCALE)
{
-# if __GLIBC__ >= 2 && !defined __UCLIBC__
+# if defined(_NL_LOCALE_NAME)
+ const char *name = nl_langinfo(_NL_LOCALE_NAME(category));
+# if __GLIBC__ >= 2 && !defined __UCLIBC__
/* Work around an incorrect definition of the _NL_LOCALE_NAME macro in
glibc < 2.12.
See <https://sourceware.org/bugzilla/show_bug.cgi?id=10968>. */
- const char *name =
- nl_langinfo (_NL_ITEM ((category), _NL_ITEM_INDEX (-1)));
+ if (name[0] == '\0')
+ name = nl_langinfo (_NL_ITEM ((category), _NL_ITEM_INDEX (-1)));
if (name[0] == '\0')
/* Fallback code for glibc < 2.4, which did not implement
nl_langinfo (_NL_LOCALE_NAME (category)). */
name = thread_locale->__names[category];
+# endif
return name;
# elif (defined __FreeBSD__ || defined __DragonFly__) || (defined __APPLE__ && defined __MACH__)
/* FreeBSD, Mac OS X */
|