From b57ab74ee74d913157dc88b978e952b6052621de Mon Sep 17 00:00:00 2001 From: Eladash Date: Fri, 4 Nov 2022 20:13:28 +0200 Subject: [PATCH] cfg: Partial support for case-insensitivity for true-false settings --- Utilities/Config.h | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/Utilities/Config.h b/Utilities/Config.h index af8ab18db9..57f2896b42 100644 --- a/Utilities/Config.h +++ b/Utilities/Config.h @@ -165,9 +165,17 @@ namespace cfg bool from_string(std::string_view value, bool /*dynamic*/ = false) override { - if (value == "false") + if (value.size() != 4 && value.size() != 5) + { + return false; + } + + char copy[5]; + std::transform(value.begin(), value.end(), std::begin(copy), ::tolower); + + if (value.size() == 5 && std::string_view{copy, 5} == "false") m_value = false; - else if (value == "true") + else if (value.size() == 4 && std::string_view{copy, 4} == "true") m_value = true; else return false;