uselocale.c raw

   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);
  17