diff options
author | dzwdz | 2022-08-28 23:54:47 +0200 |
---|---|---|
committer | dzwdz | 2022-08-28 23:54:47 +0200 |
commit | edb7fc07bf93e4a1883cccf45ad7a4b2cbf390d9 (patch) | |
tree | 1df1e95e52d54d538d345cbf455bed096d9a1bb0 /src/user/lib/include/locale.h | |
parent | f2eb3a78c7b69c4b8e118d91327cc5c1016481fc (diff) |
user/lua: prepare libc headers
Diffstat (limited to 'src/user/lib/include/locale.h')
-rw-r--r-- | src/user/lib/include/locale.h | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/src/user/lib/include/locale.h b/src/user/lib/include/locale.h new file mode 100644 index 0000000..263dfb5 --- /dev/null +++ b/src/user/lib/include/locale.h @@ -0,0 +1,70 @@ +#pragma once +#include <limits.h> + +#define LC_ALL 0 +#define LC_COLLATE 1 +#define LC_CTYPE 2 +#define LC_MESSAGES 3 +#define LC_MONETARY 4 +#define LC_NUMERIC 5 +#define LC_TIME 6 + +struct lconv { + char *decimal_point; + char *thousands_sep; + char *grouping; + char *mon_decimal_point; + char *mon_thousands_sep; + char *mon_grouping; + char *positive_sign; + char *negative_sign; + char *currency_symbol; + char frac_digits; + char p_cs_precedes; + char n_cs_precedes; + char p_sep_by_space; + char n_sep_by_space; + char p_sign_posn; + char n_sign_posn; + char *int_curr_symbol; + char int_frac_digits; + char int_p_cs_precedes; + char int_n_cs_precedes; + char int_p_sep_by_space; + char int_n_sep_by_space; + char int_p_sign_posn; + char int_n_sign_posn; +}; + +static inline struct lconv *localeconv(void) { + /* per Linux's lconv(3) */ + static struct lconv locale = (struct lconv){ + .decimal_point = ".", + .thousands_sep = "", + .grouping = "", + .mon_decimal_point = "", + .mon_thousands_sep = "", + .mon_grouping = "", + .positive_sign = "", + .negative_sign = "", + .currency_symbol = "", + .frac_digits = CHAR_MAX, + .p_cs_precedes = CHAR_MAX, + .n_cs_precedes = CHAR_MAX, + .p_sep_by_space = CHAR_MAX, + .n_sep_by_space = CHAR_MAX, + .p_sign_posn = CHAR_MAX, + .n_sign_posn = CHAR_MAX, + .int_curr_symbol = "", + .int_frac_digits = CHAR_MAX, + .int_p_cs_precedes = CHAR_MAX, + .int_n_cs_precedes = CHAR_MAX, + .int_p_sep_by_space = CHAR_MAX, + .int_n_sep_by_space = CHAR_MAX, + .int_p_sign_posn = CHAR_MAX, + .int_n_sign_posn = CHAR_MAX, + }; + return &locale; +} + +char *setlocale(int category, const char *locale); |