diff options
author | tjr <tjr@FreeBSD.org> | 2002-10-11 23:08:03 +0000 |
---|---|---|
committer | tjr <tjr@FreeBSD.org> | 2002-10-11 23:08:03 +0000 |
commit | 91e28cff5e62812b1ba1a6843a243f8651a6e927 (patch) | |
tree | 4670f85dd05f325c866c8a86a20937cb7ea0b8e7 | |
parent | 27cfe623e74b0ca223d83b1674d81ee0bc97efd5 (diff) | |
download | FreeBSD-src-91e28cff5e62812b1ba1a6843a243f8651a6e927.zip FreeBSD-src-91e28cff5e62812b1ba1a6843a243f8651a6e927.tar.gz |
Use the new struct lconv members to determine how to format international
monetary values.
-rw-r--r-- | lib/libc/stdlib/strfmon.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/lib/libc/stdlib/strfmon.c b/lib/libc/stdlib/strfmon.c index c0638fc..6b127fd 100644 --- a/lib/libc/stdlib/strfmon.c +++ b/lib/libc/stdlib/strfmon.c @@ -391,7 +391,18 @@ __setup_vars(int flags, char *cs_precedes, char *sep_by_space, struct lconv *lc = localeconv(); - if (flags & IS_NEGATIVE) { + if ((flags & IS_NEGATIVE) && (flags & USE_INTL_CURRENCY)) { + *cs_precedes = lc->int_n_cs_precedes; + *sep_by_space = lc->int_n_sep_by_space; + *sign_posn = (flags & PARENTH_POSN) ? 0 : lc->int_n_sign_posn; + *signstr = (lc->negative_sign == '\0') ? "-" + : lc->negative_sign; + } else if (flags & USE_INTL_CURRENCY) { + *cs_precedes = lc->int_p_cs_precedes; + *sep_by_space = lc->int_p_sep_by_space; + *sign_posn = (flags & PARENTH_POSN) ? 0 : lc->int_p_sign_posn; + *signstr = lc->positive_sign; + } else if (flags & IS_NEGATIVE) { *cs_precedes = lc->n_cs_precedes; *sep_by_space = lc->n_sep_by_space; *sign_posn = (flags & PARENTH_POSN) ? 0 : lc->n_sign_posn; |