* locale/uselocale.c (__uselocale): Return previous locale when
setting a new one.
* locale/newlocale.c: Commit changes from 2002-08-30
batch where I failed to commit this file:
(__newlocale): Fill in __names array.
+2002-08-31 Roland McGrath <roland@redhat.com>
+
+ * locale/duplocale.c (__duplocale): Free names from the right array.
+
+ * locale/uselocale.c (__uselocale): Return previous locale when
+ setting a new one.
+
+ * locale/newlocale.c: Commit changes from 2002-08-30
+ batch where I failed to commit this file:
+ (__newlocale): Fill in __names array.
+
2002-08-31 Ulrich Drepper <drepper@redhat.com>
* sysdeps/gnu/Makefile: Only depend on Versions.v.i for
if (result->__names[cnt] == NULL)
{
while (cnt-- > 0)
- if (dataset->__names[cnt] != _nl_C_name)
- free ((char *) dataset->__names[cnt]);
+ if (result->__names[cnt] != _nl_C_name)
+ free ((char *) result->__names[cnt]);
free (result);
result = NULL;
break;
locale_t
__uselocale (locale_t newloc)
{
- if (newloc == NULL)
- {
- locale_t loc = __libc_tsd_get (LOCALE);
- return loc == &_nl_global_locale ? LC_GLOBAL_LOCALE : loc;
- }
- else
+ locale_t oldloc = __libc_tsd_get (LOCALE);
+
+ if (newloc != NULL)
{
const locale_t locobj
= newloc == LC_GLOBAL_LOCALE ? &_nl_global_locale : newloc;
#endif
}
- return newloc;
+ return oldloc == &_nl_global_locale ? LC_GLOBAL_LOCALE : oldloc;
}
weak_alias (__uselocale, uselocale)