X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=src%2Flocale%2Fuselocale.c;h=0fc5ecbc07f29437e1afb66815074360bfd360cb;hb=a01f1fe66f44ffdbe2f15c2b2e850c2708f6ae5d;hp=224ef38727310d65104e29bccc02e5a31df16ef9;hpb=4350935ca4521b647472b8c18053325e07541ba1;p=musl diff --git a/src/locale/uselocale.c b/src/locale/uselocale.c index 224ef387..0fc5ecbc 100644 --- a/src/locale/uselocale.c +++ b/src/locale/uselocale.c @@ -2,12 +2,15 @@ #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; - 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);