From b54d8a49fb8d635545b2251bfdf41ebee60edc0c Mon Sep 17 00:00:00 2001 From: rubidium42 Date: Tue, 27 Apr 2021 18:14:44 +0200 Subject: Feature: allow non-ASCII currency separators --- src/settings.cpp | 3 --- src/settings_gui.cpp | 6 +++--- src/table/currency_settings.ini | 4 ++-- src/table/settings.h.preamble | 3 --- 4 files changed, 5 insertions(+), 11 deletions(-) (limited to 'src') diff --git a/src/settings.cpp b/src/settings.cpp index fdb26368c..4a04784bc 100644 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -563,8 +563,6 @@ static void IniLoadSettings(IniFile *ini, const SettingDesc *sd, const char *grp *(char**)ptr = p == nullptr ? nullptr : stredup((const char*)p); break; - case SLE_VAR_CHAR: if (p != nullptr) *(char *)ptr = *(const char *)p; break; - default: NOT_REACHED(); } break; @@ -716,7 +714,6 @@ static void IniSaveSettings(IniFile *ini, const SettingDesc *sd, const char *grp } break; - case SLE_VAR_CHAR: buf[0] = *(char*)ptr; buf[1] = '\0'; break; default: NOT_REACHED(); } break; diff --git a/src/settings_gui.cpp b/src/settings_gui.cpp index f5872c648..52d900e6e 100644 --- a/src/settings_gui.cpp +++ b/src/settings_gui.cpp @@ -2676,7 +2676,7 @@ struct CustomCurrencyWindow : Window { case WID_CC_SEPARATOR: SetDParamStr(0, _custom_currency.separator); str = STR_JUST_RAW_STRING; - len = 1; + len = sizeof(_custom_currency.separator) - 1; // Number of characters excluding '\0' termination line = WID_CC_SEPARATOR; break; @@ -2684,7 +2684,7 @@ struct CustomCurrencyWindow : Window { case WID_CC_PREFIX: SetDParamStr(0, _custom_currency.prefix); str = STR_JUST_RAW_STRING; - len = 12; + len = sizeof(_custom_currency.prefix) - 1; // Number of characters excluding '\0' termination line = WID_CC_PREFIX; break; @@ -2692,7 +2692,7 @@ struct CustomCurrencyWindow : Window { case WID_CC_SUFFIX: SetDParamStr(0, _custom_currency.suffix); str = STR_JUST_RAW_STRING; - len = 12; + len = sizeof(_custom_currency.suffix) - 1; // Number of characters excluding '\0' termination line = WID_CC_SUFFIX; break; diff --git a/src/table/currency_settings.ini b/src/table/currency_settings.ini index c242c83a8..3e51d0240 100644 --- a/src/table/currency_settings.ini +++ b/src/table/currency_settings.ini @@ -10,7 +10,6 @@ static const SettingDesc _currency_settings[] = { }; [templates] SDT_VAR = SDT_VAR($base, $var, $type, $flags, $guiflags, $def, $min, $max, $interval, $str, $strhelp, $strval, $proc, $from, $to, $cat, $extra, $startup), -SDT_CHR = SDT_CHR($base, $var, $flags, $guiflags, $def, $str, $strhelp, $strval, $proc, $from, $to, $cat, $extra, $startup), SDT_STR = SDT_STR($base, $var, $type, $flags, $guiflags, $def, $str, $strhelp, $strval, $proc, $from, $to, $cat, $extra, $startup), SDT_END = SDT_END() @@ -42,9 +41,10 @@ def = 1 min = 0 max = UINT16_MAX -[SDT_CHR] +[SDT_STR] base = CurrencySpec var = separator +type = SLE_STRBQ def = ""."" cat = SC_BASIC diff --git a/src/table/settings.h.preamble b/src/table/settings.h.preamble index d7084d724..c3e0678b7 100644 --- a/src/table/settings.h.preamble +++ b/src/table/settings.h.preamble @@ -107,9 +107,6 @@ static size_t ConvertLandscape(const char *value); #define SDT_STR(base, var, type, flags, guiflags, def, str, strhelp, strval, proc, from, to, cat, extra, startup)\ SDT_GENERAL(#var, SDT_STRING, SL_STR, type, flags, guiflags, base, var, sizeof(((base*)8)->var), def, 0, 0, 0, nullptr, str, strhelp, strval, proc, nullptr, from, to, cat, extra, startup) -#define SDT_CHR(base, var, flags, guiflags, def, str, strhelp, strval, proc, from, to, cat, extra, startup)\ - SDT_GENERAL(#var, SDT_STRING, SL_VAR, SLE_CHAR, flags, guiflags, base, var, 1, def, 0, 0, 0, nullptr, str, strhelp, strval, proc, nullptr, from, to, cat, extra, startup) - #define SDT_OMANY(base, var, type, flags, guiflags, def, max, full, str, strhelp, strval, proc, from, to, load, cat, extra, startup)\ SDT_GENERAL(#var, SDT_ONEOFMANY, SL_VAR, type, flags, guiflags, base, var, 1, def, 0, max, 0, full, str, strhelp, strval, proc, load, from, to, cat, extra, startup) -- cgit v1.2.3-70-g09d2