aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2007-07-12 18:26:36 +0000
committerJakub Jelinek <jakub@redhat.com>2007-07-12 18:26:36 +0000
commit0ecb606cb6cf65de1d9fc8a919bceb4be476c602 (patch)
tree2ea1f8305970753e4a657acb2ccc15ca3eec8e2c /locale/newlocale.c
parentTest for stack alignment. (diff)
downloadglibc-0ecb606cb6cf65de1d9fc8a919bceb4be476c602.tar.gz
glibc-0ecb606cb6cf65de1d9fc8a919bceb4be476c602.tar.bz2
glibc-0ecb606cb6cf65de1d9fc8a919bceb4be476c602.zip
2.5-18.1
Diffstat (limited to 'locale/newlocale.c')
-rw-r--r--locale/newlocale.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/locale/newlocale.c b/locale/newlocale.c
index b646ffeacd..0c31ba48ae 100644
--- a/locale/newlocale.c
+++ b/locale/newlocale.c
@@ -1,5 +1,5 @@
/* Return a reference to locale information record.
- Copyright (C) 1996, 1997, 1999, 2000, 2001, 2002, 2004
+ Copyright (C) 1996, 1997, 1999, 2000-2002, 2004, 2005, 2006
Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
@@ -66,7 +66,7 @@ __newlocale (int category_mask, const char *locale, __locale_t base)
if (locale == NULL)
ERROR_RETURN;
- if (base == &_nl_C_locobj)
+ if (base == _nl_C_locobj_ptr)
/* We're to modify BASE, returned for a previous call with "C".
We can't really modify the read-only structure, so instead
start over by copying it. */
@@ -75,7 +75,7 @@ __newlocale (int category_mask, const char *locale, __locale_t base)
if ((base == NULL || category_mask == (1 << __LC_LAST) - 1 - (1 << LC_ALL))
&& (category_mask == 0 || !strcmp (locale, "C")))
/* Asking for the "C" locale needn't allocate a new object. */
- return &_nl_C_locobj;
+ return _nl_C_locobj_ptr;
/* Allocate memory for the result. */
if (base != NULL)
@@ -133,7 +133,8 @@ __newlocale (int category_mask, const char *locale, __locale_t base)
for (cnt = 0; cnt < __LC_LAST; ++cnt)
if (cnt != LC_ALL
&& (size_t) (cp - np) == _nl_category_name_sizes[cnt]
- && memcmp (np, _nl_category_names[cnt], cp - np) == 0)
+ && memcmp (np, (_nl_category_names.str
+ + _nl_category_name_idxs[cnt]), cp - np) == 0)
break;
if (cnt == __LC_LAST)