Browse Source

fix localeconv field value for unavailable values

per ISO C, CHAR_MAX, not -1, is the value used to indicate that a char
field in struct lconv is unavailable.

patch by Julien Ramseier.
Rich Felker 9 years ago
parent
commit
b4d94ba40d
1 changed files with 15 additions and 14 deletions
  1. 15 14
      src/locale/localeconv.c

+ 15 - 14
src/locale/localeconv.c

@@ -1,4 +1,5 @@
 #include <locale.h>
+#include <limits.h>
 
 static const struct lconv posix_lconv = {
 	.decimal_point = ".",
@@ -11,20 +12,20 @@ static const struct lconv posix_lconv = {
 	.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,
+	.int_frac_digits = CHAR_MAX,
+	.frac_digits = CHAR_MAX,
+	.p_cs_precedes = CHAR_MAX,
+	.p_sep_by_space = CHAR_MAX,
+	.n_cs_precedes = CHAR_MAX,
+	.n_sep_by_space = CHAR_MAX,
+	.p_sign_posn = CHAR_MAX,
+	.n_sign_posn = CHAR_MAX,
+	.int_p_cs_precedes = CHAR_MAX,
+	.int_p_sep_by_space = CHAR_MAX,
+	.int_n_cs_precedes = CHAR_MAX,
+	.int_n_sep_by_space = CHAR_MAX,
+	.int_p_sign_posn = CHAR_MAX,
+	.int_n_sign_posn = CHAR_MAX,
 };
 
 struct lconv *localeconv(void)