aboutsummaryrefslogtreecommitdiff
path: root/locale/newlocale.c
diff options
context:
space:
mode:
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 b646ffe..0c31ba4 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)