projects
/
musl
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fix x32 unistd macros to report as ILP32 not LP64
[musl]
/
src
/
locale
/
uselocale.c
diff --git
a/src/locale/uselocale.c
b/src/locale/uselocale.c
index
224ef38
..
0fc5ecb
100644
(file)
--- a/
src/locale/uselocale.c
+++ b/
src/locale/uselocale.c
@@
-2,12
+2,15
@@
#include "pthread_impl.h"
#include "libc.h"
#include "pthread_impl.h"
#include "libc.h"
-locale_t
uselocale(locale_t l
)
+locale_t
__uselocale(locale_t new
)
{
{
- pthread_t self = pthread_self();
+ pthread_t self =
__
pthread_self();
locale_t old = self->locale;
locale_t old = self->locale;
- if (l) self->locale = l;
- return old;
+ locale_t global = &libc.global_locale;
+
+ if (new) self->locale = new == LC_GLOBAL_LOCALE ? global : new;
+
+ return old == global ? LC_GLOBAL_LOCALE : old;
}
}
-weak_alias(
uselocale, __
uselocale);
+weak_alias(
__uselocale,
uselocale);