1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-04-30 03:40:34 +02:00

Update to Gnulib v0.0-2923-g6575ab5.

This commit is contained in:
Ludovic Courtès 2009-11-24 22:11:28 +01:00
parent 6b1bc6e56a
commit b3eba3b2ff

View file

@ -22,15 +22,8 @@
#include <locale.h> #include <locale.h>
#include <errno.h> #include <errno.h>
#include <langinfo.h>
#include <string.h> #include <string.h>
/* Work around an incorrect definition of the _NL_LOCALE_NAME macro in
glibc < 2.12.
See <http://sourceware.org/bugzilla/show_bug.cgi?id=10968>. */
#undef _NL_LOCALE_NAME
#define _NL_LOCALE_NAME(category) _NL_ITEM ((category), _NL_ITEM_INDEX (-1))
#define SIZEOF(a) (sizeof(a) / sizeof(a[0])) #define SIZEOF(a) (sizeof(a) / sizeof(a[0]))
#undef duplocale #undef duplocale
@ -74,11 +67,7 @@ rpl_duplocale (locale_t locale)
locale_t base_copy; locale_t base_copy;
unsigned int i; unsigned int i;
base_name = nl_langinfo (_NL_LOCALE_NAME (LC_CTYPE)); base_name = setlocale (LC_CTYPE, NULL);
if (base_name[0] == '\0')
/* Fallback code for glibc < 2.4, which did not implement
nl_langinfo (_NL_LOCALE_NAME (category)). */
base_name = setlocale (LC_CTYPE, NULL);
base_copy = newlocale (LC_ALL_MASK, base_name, NULL); base_copy = newlocale (LC_ALL_MASK, base_name, NULL);
if (base_copy == NULL) if (base_copy == NULL)
return NULL; return NULL;
@ -87,11 +76,7 @@ rpl_duplocale (locale_t locale)
{ {
int category = categories[i].cat; int category = categories[i].cat;
int category_mask = categories[i].mask; int category_mask = categories[i].mask;
const char *name = nl_langinfo (_NL_LOCALE_NAME (category)); const char *name = setlocale (category, NULL);
if (name[0] == '\0')
/* Fallback code for glibc < 2.4, which did not implement
nl_langinfo (_NL_LOCALE_NAME (category)). */
name = setlocale (category, NULL);
if (strcmp (name, base_name) != 0) if (strcmp (name, base_name) != 0)
{ {
locale_t copy = newlocale (category_mask, name, base_copy); locale_t copy = newlocale (category_mask, name, base_copy);