summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/settings.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/settings.cpp b/src/settings.cpp
index b82717529..fc151e4e5 100644
--- a/src/settings.cpp
+++ b/src/settings.cpp
@@ -2104,11 +2104,22 @@ const SettingDesc *GetPatchFromName(const char *name, uint *i)
{
const SettingDesc *sd;
+ /* First check all full names */
for (*i = 0, sd = _patch_settings; sd->save.cmd != SL_END; sd++, (*i)++) {
if (!SlIsObjectCurrentlyValid(sd->save.version_from, sd->save.version_to)) continue;
if (strcmp(sd->desc.name, name) == 0) return sd;
}
+ /* Then check the shortcut variant of the name. */
+ for (*i = 0, sd = _patch_settings; sd->save.cmd != SL_END; sd++, (*i)++) {
+ if (!SlIsObjectCurrentlyValid(sd->save.version_from, sd->save.version_to)) continue;
+ const char *short_name = strchr(sd->desc.name, '.');
+ if (short_name != NULL) {
+ short_name++;
+ if (strcmp(short_name, name) == 0) return sd;
+ }
+ }
+
return NULL;
}