From a82d46dc92b1016d1e863d4408f8e5e5978768f1 Mon Sep 17 00:00:00 2001 From: Bruce Momjian Date: Wed, 21 Nov 2007 22:28:18 +0000 Subject: [PATCH] When setting default thousands separator when locale has "", use logic so new thousands separator doesn't match decimal symbol. --- src/backend/utils/adt/formatting.c | 8 ++++---- src/bin/psql/print.c | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/backend/utils/adt/formatting.c b/src/backend/utils/adt/formatting.c index d976d8932e..555187277b 100644 --- a/src/backend/utils/adt/formatting.c +++ b/src/backend/utils/adt/formatting.c @@ -3915,7 +3915,6 @@ NUM_prepare_locale(NUMProc *Np) */ if (lconv->decimal_point && *lconv->decimal_point) Np->decimal = lconv->decimal_point; - else Np->decimal = "."; @@ -3926,13 +3925,14 @@ NUM_prepare_locale(NUMProc *Np) * Number thousands separator * * Some locales (e.g. broken glibc pt_BR), have a comma for decimal, - * but "" for thousands_sep, so we make the thousands_sep comma - * too. 2007-02-12 + * but "" for thousands_sep, so we set the thousands_sep too. 2007-02-12 */ if (lconv->thousands_sep && *lconv->thousands_sep) Np->L_thousands_sep = lconv->thousands_sep; - else + else if (strcmp(Np->decimal, ",") != 0) Np->L_thousands_sep = ","; + else + Np->L_thousands_sep = "."; /* * Currency symbol diff --git a/src/bin/psql/print.c b/src/bin/psql/print.c index c04263b7c7..b2cbe74a96 100644 --- a/src/bin/psql/print.c +++ b/src/bin/psql/print.c @@ -2039,7 +2039,7 @@ setDecimalLocale(void) grouping = "3"; /* most common */ if (*extlconv->thousands_sep) thousands_sep = strdup(extlconv->thousands_sep); - else if (*decimal_point != ',') + else if (strcmp(decimal_point, ",") != 0) thousands_sep = ","; else thousands_sep = "."; -- 2.39.5