summaryrefslogtreecommitdiffstats
path: root/newlib/libc/locale/lmonetary.c
diff options
context:
space:
mode:
Diffstat (limited to 'newlib/libc/locale/lmonetary.c')
-rw-r--r--newlib/libc/locale/lmonetary.c22
1 files changed, 21 insertions, 1 deletions
diff --git a/newlib/libc/locale/lmonetary.c b/newlib/libc/locale/lmonetary.c
index c96d74802..f1101a902 100644
--- a/newlib/libc/locale/lmonetary.c
+++ b/newlib/libc/locale/lmonetary.c
@@ -38,6 +38,9 @@ extern const char * __fix_locale_grouping_str(const char *);
static char empty[] = "";
static char numempty[] = { CHAR_MAX, '\0'};
+#ifdef __HAVE_LOCALE_INFO_EXTENDED__
+static wchar_t wempty[] = L"";
+#endif
static const struct lc_monetary_T _C_monetary_locale = {
empty, /* int_curr_symbol */
@@ -55,6 +58,21 @@ static const struct lc_monetary_T _C_monetary_locale = {
numempty, /* n_sep_by_space */
numempty, /* p_sign_posn */
numempty /* n_sign_posn */
+#ifdef __HAVE_LOCALE_INFO_EXTENDED__
+ , numempty, /* int_p_cs_precedes */
+ numempty, /* int_p_sep_by_space */
+ numempty, /* int_n_cs_precedes */
+ numempty, /* int_n_sep_by_space */
+ numempty, /* int_p_sign_posn */
+ numempty, /* int_n_sign_posn */
+ "ASCII", /* codeset */
+ wempty, /* wint_curr_symbol */
+ wempty, /* wcurrency_symbol */
+ wempty, /* wmon_decimal_point */
+ wempty, /* wmon_thousands_sep */
+ wempty, /* wpositive_sign */
+ wempty /* wnegative_sign */
+#endif
};
static struct lc_monetary_T _monetary_locale;
@@ -76,11 +94,13 @@ __monetary_load_locale(const char *name , void *f_wctomb, const char *charset)
#ifdef __CYGWIN__
extern int __set_lc_monetary_from_win (const char *,
+ const struct lc_monetary_T *,
struct lc_monetary_T *, char **,
void *, const char *);
int old_monetary_using_locale = _monetary_using_locale;
_monetary_using_locale = 0;
- ret = __set_lc_monetary_from_win (name, &_monetary_locale,
+ ret = __set_lc_monetary_from_win (name, &_C_monetary_locale,
+ &_monetary_locale,
&_monetary_locale_buf,
f_wctomb, charset);
/* ret == -1: error, ret == 0: C/POSIX, ret > 0: valid */