From fc00c656c96528112d05cf0edf8631bd5eaea446 Mon Sep 17 00:00:00 2001 From: Kacper Date: Sun, 7 Dec 2025 20:10:31 +0100 Subject: Add build system scaffolding and libc headers --- lib/libc/include/__locale.h | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 lib/libc/include/__locale.h (limited to 'lib/libc/include/__locale.h') diff --git a/lib/libc/include/__locale.h b/lib/libc/include/__locale.h new file mode 100644 index 00000000..0a709c78 --- /dev/null +++ b/lib/libc/include/__locale.h @@ -0,0 +1,41 @@ +#ifndef __LIBC_LOCALE_H +#define __LIBC_LOCALE_H + +#include +#include + +typedef __SIZE_TYPE__ size_t; + +struct __locale_t { + struct __locale_map { + const void *map; + size_t map_size; + char name[24]; + } maps[6]; +}; + +typedef struct __locale_t *locale_t; + +static const struct __locale_t __c_locale = { 0 }; + +static const struct __locale_t __utf8_locale = { + .maps[LC_CTYPE] = { .map = &((const uint32_t[]){ 0x950412de, 0, -1, -1, + -1 }), + .map_size = sizeof(uint32_t) * 5, + .name = "C.UTF-8" }, +}; + +#undef MB_CUR_MAX +#define MB_CUR_MAX (((locale_t) & __utf8_locale) ? 4 : 1) + +static inline int __mb_cur_max(void) +{ + return MB_CUR_MAX; +} + +static inline int __locale_allocated(locale_t loc) +{ + return loc != (locale_t)&__c_locale && loc != (locale_t)&__utf8_locale; +} + +#endif -- cgit v1.2.3