|
Message-ID: <20231216194325.23580-3-pabloyoyoista@postmarketos.org> Date: Sat, 16 Dec 2023 20:36:44 +0100 From: Pablo Correa Gómez <pabloyoyoista@...tmarketos.org> To: musl@...ts.openwall.com Cc: Pablo Correa Gómez <ablocorrea@...mail.com> Subject: [PATCH 2/2] printf: translate RADIXCHAR for floating-point numbers From: Pablo Correa Gómez <ablocorrea@...mail.com> This honors POSIX.1-2017, and allows to get the RADIXCHAR when the locale is correctly translated. --- src/stdio/vfprintf.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/stdio/vfprintf.c b/src/stdio/vfprintf.c index 497c5e19..33f98532 100644 --- a/src/stdio/vfprintf.c +++ b/src/stdio/vfprintf.c @@ -10,6 +10,7 @@ #include <inttypes.h> #include <math.h> #include <float.h> +#include <langinfo.h> /* Some useful macros */ @@ -389,7 +390,7 @@ static int fmt_fp(FILE *f, long double y, int w, int p, int fl, int t) else if (s==buf+9) *--s='0'; out(f, s, buf+9-s); } - if (p || (fl&ALT_FORM)) out(f, ".", 1); + if (p || (fl&ALT_FORM)) out(f, nl_langinfo(RADIXCHAR), 1); for (; d<z && p>0; d++, p-=9) { char *s = fmt_u(*d, buf+9); while (s>buf) *--s='0'; @@ -404,7 +405,7 @@ static int fmt_fp(FILE *f, long double y, int w, int p, int fl, int t) if (d!=a) while (s>buf) *--s='0'; else { out(f, s++, 1); - if (p>0||(fl&ALT_FORM)) out(f, ".", 1); + if (p>0||(fl&ALT_FORM)) out(f, nl_langinfo(RADIXCHAR), 1); } out(f, s, MIN(buf+9-s, p)); p -= buf+9-s; -- 2.43.0
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.