github.com/afumu/libc@v0.0.6/musl/src/locale/uselocale.c (about)

     1  #include "locale_impl.h"
     2  #include "pthread_impl.h"
     3  #include "libc.h"
     4  
     5  locale_t __uselocale(locale_t new)
     6  {
     7  	pthread_t self = __pthread_self();
     8  	locale_t old = self->locale;
     9  	locale_t global = &libc.global_locale;
    10  
    11  	if (new) self->locale = new == LC_GLOBAL_LOCALE ? global : new;
    12  
    13  	return old == global ? LC_GLOBAL_LOCALE : old;
    14  }
    15  
    16  weak_alias(__uselocale, uselocale);