implement locale file loading and state for remaining locale categories
[musl] / src / internal / locale_impl.h
1 #include <locale.h>
2 #include <stdlib.h>
3 #include "libc.h"
4 #include "pthread_impl.h"
5
6 #define LOCALE_NAME_MAX 15
7
8 struct __locale_map {
9         const void *map;
10         size_t map_size;
11         char name[LOCALE_NAME_MAX+1];
12         struct __locale_map *next;
13 };
14
15 int __setlocalecat(locale_t, int, const char *);
16
17 #define CURRENT_LOCALE \
18         (libc.uselocale_cnt ? __pthread_self()->locale : &libc.global_locale)
19
20 #define CURRENT_UTF8 \
21         (libc.bytelocale_cnt_minus_1<0 || __pthread_self()->locale->ctype_utf8)
22
23 #undef MB_CUR_MAX
24 #define MB_CUR_MAX (CURRENT_UTF8 ? 4 : 1)