From a44bd81280ea1c062ea5b6c00f8ffc5dc7ac677d Mon Sep 17 00:00:00 2001 From: Rubidium Date: Thu, 8 Feb 2024 20:37:55 +0100 Subject: [PATCH] Codechange: Move determining the decimal separator to a separate function --- src/strings.cpp | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/src/strings.cpp b/src/strings.cpp index 428f4a5293..386662c35c 100644 --- a/src/strings.cpp +++ b/src/strings.cpp @@ -377,6 +377,13 @@ void SetDParamStr(size_t n, std::string &&str) _global_string_params.SetParam(n, std::move(str)); } +static const char *GetDecimalSeparator() +{ + const char *decimal_separator = _settings_game.locale.digit_decimal_separator.c_str(); + if (StrEmpty(decimal_separator)) decimal_separator = _langpack.langpack->digit_decimal_separator; + return decimal_separator; +} + /** * Format a number into a string. * @param builder the string builder to write to @@ -403,9 +410,7 @@ static void FormatNumber(StringBuilder &builder, int64_t number, const char *sep uint64_t tot = 0; for (int i = 0; i < max_digits; i++) { if (i == max_digits - fractional_digits) { - const char *decimal_separator = _settings_game.locale.digit_decimal_separator.c_str(); - if (StrEmpty(decimal_separator)) decimal_separator = _langpack.langpack->digit_decimal_separator; - builder += decimal_separator; + builder += GetDecimalSeparator(); } uint64_t quot = 0; @@ -461,16 +466,13 @@ static void FormatBytes(StringBuilder &builder, int64_t number) id++; } - const char *decimal_separator = _settings_game.locale.digit_decimal_separator.c_str(); - if (StrEmpty(decimal_separator)) decimal_separator = _langpack.langpack->digit_decimal_separator; - if (number < 1024) { id = 0; fmt::format_to(builder, "{}", number); } else if (number < 1024 * 10) { - fmt::format_to(builder, "{}{}{:02}", number / 1024, decimal_separator, (number % 1024) * 100 / 1024); + fmt::format_to(builder, "{}{}{:02}", number / 1024, GetDecimalSeparator(), (number % 1024) * 100 / 1024); } else if (number < 1024 * 100) { - fmt::format_to(builder, "{}{}{:01}", number / 1024, decimal_separator, (number % 1024) * 10 / 1024); + fmt::format_to(builder, "{}{}{:01}", number / 1024, GetDecimalSeparator(), (number % 1024) * 10 / 1024); } else { assert(number < 1024 * 1024); fmt::format_to(builder, "{}", number / 1024);