diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/locale/localeconv.c | 43 | 
1 files changed, 28 insertions, 15 deletions
| diff --git a/src/locale/localeconv.c b/src/locale/localeconv.c index d79d1c07..494cbcc0 100644 --- a/src/locale/localeconv.c +++ b/src/locale/localeconv.c @@ -2,21 +2,34 @@  #include <string.h>  #include <stdlib.h> +static const struct lconv posix_lconv = { +	.decimal_point = ".", +	.thousands_sep = "", +	.grouping = "", +	.int_curr_symbol = "", +	.currency_symbol = "", +	.mon_decimal_point = "", +	.mon_thousands_sep = "", +	.mon_grouping = "", +	.positive_sign = "", +	.negative_sign = "", +	.int_frac_digits = -1, +	.frac_digits = -1, +	.p_cs_precedes = -1, +	.p_sep_by_space = -1, +	.n_cs_precedes = -1, +	.n_sep_by_space = -1, +	.p_sign_posn = -1, +	.n_sign_posn = -1, +	.int_p_cs_precedes = -1, +	.int_p_sep_by_space = -1, +	.int_n_cs_precedes = -1, +	.int_n_sep_by_space = -1, +	.int_p_sign_posn = -1, +	.int_n_sign_posn = -1, +}; +  struct lconv *localeconv(void)  { -	static struct lconv *posix_lconv; -	if (posix_lconv) return posix_lconv; -	posix_lconv = malloc(sizeof *posix_lconv); -	memset(posix_lconv, -1, sizeof *posix_lconv); -	posix_lconv->decimal_point = "."; -	posix_lconv->thousands_sep = ""; -	posix_lconv->grouping = "\xff"; -	posix_lconv->int_curr_symbol = ""; //"\xc2\xa4"; -	posix_lconv->currency_symbol = ""; -	posix_lconv->mon_decimal_point = ""; -	posix_lconv->mon_thousands_sep = ""; -	posix_lconv->mon_grouping = "\xff"; -	posix_lconv->positive_sign = ""; // "+"; -	posix_lconv->negative_sign = ""; // "-"; -	return posix_lconv; +	return (void *)&posix_lconv;  } | 
