fix localeconv field value for unavailable values
authorRich Felker <dalias@aerifal.cx>
Thu, 24 Sep 2015 06:40:05 +0000 (06:40 +0000)
committerRich Felker <dalias@aerifal.cx>
Thu, 24 Sep 2015 06:40:05 +0000 (06:40 +0000)
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.

src/locale/localeconv.c

index cbc75d7a45693303d786fb554d70a56abc1b44a7..4cbb9dc52d22dcaf0c64769c208133a38c07be34 100644 (file)
@@ -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)