From 826d1afd58c2e064a9c8fdb09eda1b08469de1a8 Mon Sep 17 00:00:00 2001 From: pommicket Date: Fri, 18 Feb 2022 12:36:57 -0500 Subject: newer version of tcc almost working --- 05/tcc-0.9.27/locale.h | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 05/tcc-0.9.27/locale.h (limited to '05/tcc-0.9.27/locale.h') diff --git a/05/tcc-0.9.27/locale.h b/05/tcc-0.9.27/locale.h new file mode 100644 index 0000000..af90729 --- /dev/null +++ b/05/tcc-0.9.27/locale.h @@ -0,0 +1,60 @@ +#ifndef _LOCALE_H +#define _LOCALE_H + +#include + +struct lconv { + char *decimal_point; /* "." */ + char *thousands_sep; /* "" */ + char *grouping; /* "" */ + char *int_curr_symbol; /* "" */ + char *currency_symbol; /* "" */ + char *mon_decimal_point; /* "" */ + char *mon_thousands_sep; /* "" */ + char *mon_grouping; /* "" */ + char *positive_sign; /* "" */ + char *negative_sign; /* "" */ + char int_frac_digits; /* CHAR_MAX */ + char frac_digits; /* CHAR_MAX */ + char p_cs_precedes; /* CHAR_MAX */ + char p_sep_by_space; /* CHAR_MAX */ + char n_cs_precedes; /* CHAR_MAX */ + char n_sep_by_space; /* CHAR_MAX */ + char p_sign_posn; /* CHAR_MAX */ + char n_sign_posn; /* CHAR_MAX */ +}; + +// these are GCC's constants, but it doesn't really matter which constants we use. +#define LC_ALL 6 +#define LC_COLLATE 3 +#define LC_CTYPE 0 +#define LC_MONETARY 4 +#define LC_NUMERIC 1 +#define LC_TIME 2 + +char *setlocale(int category, char *locale) { + if (!locale) return "C"; + if (*locale == 'C' && !locale[1]) { + // yep + return "C"; + } + + // we only support the C locale + return NULL; + +} + +struct lconv *localeconv(void) { + static struct lconv conv = { + ".", + "", "", "", + "", "", "", + "", "", "", + CHAR_MAX, CHAR_MAX, CHAR_MAX, + CHAR_MAX, CHAR_MAX, CHAR_MAX, + CHAR_MAX, CHAR_MAX + }; + return &conv; +} + +#endif // _LOCALE_H -- cgit v1.2.3