summary refs log tree commit diff
path: root/locale/uselocale.c
diff options
context:
space:
mode:
authorRoland McGrath <roland@gnu.org>2002-08-31 18:29:52 +0000
committerRoland McGrath <roland@gnu.org>2002-08-31 18:29:52 +0000
commit426bf3a396d0f7743decebe861b503398400233e (patch)
tree93c1780d1e425359f407efd06db85826f5314799 /locale/uselocale.c
parent26e401242cf6af557eba9641953920f2908ea47e (diff)
downloadglibc-426bf3a396d0f7743decebe861b503398400233e.tar.gz
glibc-426bf3a396d0f7743decebe861b503398400233e.tar.xz
glibc-426bf3a396d0f7743decebe861b503398400233e.zip
* 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.
Diffstat (limited to 'locale/uselocale.c')
-rw-r--r--locale/uselocale.c11
1 files changed, 4 insertions, 7 deletions
diff --git a/locale/uselocale.c b/locale/uselocale.c
index d5e53113c1..d19ae50d0b 100644
--- a/locale/uselocale.c
+++ b/locale/uselocale.c
@@ -28,12 +28,9 @@
 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;
@@ -65,6 +62,6 @@ __uselocale (locale_t newloc)
 #endif
     }
 
-  return newloc;
+  return oldloc == &_nl_global_locale ? LC_GLOBAL_LOCALE : oldloc;
 }
 weak_alias (__uselocale, uselocale)