aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Weimer <fweimer@redhat.com>2022-05-23 10:08:18 +0200
committerFlorian Weimer <fweimer@redhat.com>2022-05-23 11:06:31 +0200
commitb094c52b1b65693368d0d70c505e0d0b4edad1c2 (patch)
treee43c7cd6322eade0f4e12217a9e846cc767b1dac
parent859e7a00af63ca0c28092c57316e9b832ceafb5e (diff)
downloadglibc-b094c52b1b65693368d0d70c505e0d0b4edad1c2.zip
glibc-b094c52b1b65693368d0d70c505e0d0b4edad1c2.tar.gz
glibc-b094c52b1b65693368d0d70c505e0d0b4edad1c2.tar.bz2
__printf_fphex always uses LC_NUMERIC
There is no hexadecimal currency printing. strfmon uses __printf_fp_l exclusively. Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
-rw-r--r--stdio-common/printf_fphex.c30
1 files changed, 11 insertions, 19 deletions
diff --git a/stdio-common/printf_fphex.c b/stdio-common/printf_fphex.c
index 3dbbefd..5af380d 100644
--- a/stdio-common/printf_fphex.c
+++ b/stdio-common/printf_fphex.c
@@ -103,9 +103,17 @@ __printf_fphex (FILE *fp,
}
fpnum;
- /* Locale-dependent representation of decimal point. */
- const char *decimal;
- wchar_t decimalwc;
+ /* This function always uses LC_NUMERIC. */
+ assert (info->extra == 0);
+
+ /* Locale-dependent representation of decimal point. Hexadecimal
+ formatting always using LC_NUMERIC (disregarding info->extra). */
+ const char *decimal = _NL_CURRENT (LC_NUMERIC, DECIMAL_POINT);
+ wchar_t decimalwc = _NL_CURRENT_WORD (LC_NUMERIC,
+ _NL_NUMERIC_DECIMAL_POINT_WC);
+
+ /* The decimal point character must never be zero. */
+ assert (*decimal != '\0' && decimalwc != L'\0');
/* "NaN" or "Inf" for the special cases. */
const char *special = NULL;
@@ -147,22 +155,6 @@ __printf_fphex (FILE *fp,
/* Nonzero if this is output on a wide character stream. */
int wide = info->wide;
-
- /* Figure out the decimal point character. */
- if (info->extra == 0)
- {
- decimal = _NL_CURRENT (LC_NUMERIC, DECIMAL_POINT);
- decimalwc = _NL_CURRENT_WORD (LC_NUMERIC, _NL_NUMERIC_DECIMAL_POINT_WC);
- }
- else
- {
- decimal = _NL_CURRENT (LC_MONETARY, MON_DECIMAL_POINT);
- decimalwc = _NL_CURRENT_WORD (LC_MONETARY,
- _NL_MONETARY_DECIMAL_POINT_WC);
- }
- /* The decimal point character must never be zero. */
- assert (*decimal != '\0' && decimalwc != L'\0');
-
#define PRINTF_FPHEX_FETCH(FLOAT, VAR) \
{ \
(VAR) = *(const FLOAT *) args[0]; \