X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=src%2Flocale%2Fuselocale.c;h=0fc5ecbc07f29437e1afb66815074360bfd360cb;hb=8c4be3e2209d2a1d3874b8bc2b474668fcbbbac6;hp=9c7995783d24869d118d7f1a5ab7cd295aeacc0d;hpb=11c531e21de9c417166da934898ea7225a758fdf;p=musl diff --git a/src/locale/uselocale.c b/src/locale/uselocale.c index 9c799578..0fc5ecbc 100644 --- a/src/locale/uselocale.c +++ b/src/locale/uselocale.c @@ -1,10 +1,16 @@ #include "locale_impl.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; - 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);