diff --git a/locale.c b/locale.c index dd5eb75c42e1..569711fe9f4c 100644 --- a/locale.c +++ b/locale.c @@ -5542,31 +5542,30 @@ S_my_localeconv(pTHX_ const int item) # ifdef USE_LOCALE_NUMERIC case RADIXCHAR: - locale = numeric_locale = PL_numeric_name; - index_bits = OFFSET_TO_BIT(NUMERIC_OFFSET); strings[NUMERIC_OFFSET] = DECIMAL_POINT_ADDRESS; - integers = NULL; - break; + goto numeric_common; case THOUSEP: - index_bits = OFFSET_TO_BIT(NUMERIC_OFFSET); - locale = numeric_locale = PL_numeric_name; strings[NUMERIC_OFFSET] = thousands_sep_string; + + numeric_common: integers = NULL; + index_bits = OFFSET_TO_BIT(NUMERIC_OFFSET); + locale = numeric_locale = PL_numeric_name; break; # endif # ifdef USE_LOCALE_MONETARY case CRNCYSTR: - index_bits = OFFSET_TO_BIT(MONETARY_OFFSET); - locale = monetary_locale = querylocale_i(LC_MONETARY_INDEX_); - /* This item needs the values for both the currency symbol, and * another one used to construct the nl_langino()-compatible * return. */ strings[MONETARY_OFFSET] = CURRENCY_SYMBOL_ADDRESS; integers = P_CS_PRECEDES_ADDRESS; + + index_bits = OFFSET_TO_BIT(MONETARY_OFFSET); + locale = monetary_locale = querylocale_i(LC_MONETARY_INDEX_); break; # endif