diff options
Diffstat (limited to 'src/internal')
-rw-r--r-- | src/internal/libc.h | 4 | ||||
-rw-r--r-- | src/internal/locale_impl.h | 8 |
2 files changed, 5 insertions, 7 deletions
diff --git a/src/internal/libc.h b/src/internal/libc.h index 212f0e8b..6810cd8b 100644 --- a/src/internal/libc.h +++ b/src/internal/libc.h @@ -8,9 +8,7 @@ struct __locale_map; struct __locale_struct { - volatile int ctype_utf8; - char *messages_name; - struct __locale_map *volatile cat[4]; + const struct __locale_map *volatile cat[6]; }; struct __libc { diff --git a/src/internal/locale_impl.h b/src/internal/locale_impl.h index 5aebbf68..9b8385e9 100644 --- a/src/internal/locale_impl.h +++ b/src/internal/locale_impl.h @@ -9,20 +9,20 @@ struct __locale_map { const void *map; size_t map_size; char name[LOCALE_NAME_MAX+1]; - struct __locale_map *next; + const struct __locale_map *next; }; -int __setlocalecat(locale_t, int, const char *); +const struct __locale_map *__get_locale(int, const char *); const char *__mo_lookup(const void *, size_t, const char *); const char *__lctrans(const char *, const struct __locale_map *); const char *__lctrans_cur(const char *); -#define LCTRANS(msg, lc, loc) __lctrans(msg, (loc)->cat[(lc)-2]) +#define LCTRANS(msg, lc, loc) __lctrans(msg, (loc)->cat[(lc)]) #define LCTRANS_CUR(msg) __lctrans_cur(msg) #define CURRENT_LOCALE (__pthread_self()->locale) -#define CURRENT_UTF8 (__pthread_self()->locale->ctype_utf8) +#define CURRENT_UTF8 (!!__pthread_self()->locale->cat[LC_CTYPE]) #undef MB_CUR_MAX #define MB_CUR_MAX (CURRENT_UTF8 ? 4 : 1) |