summaryrefslogtreecommitdiff
path: root/Source/Core/Common/StringUtil.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/Core/Common/StringUtil.cpp')
-rw-r--r--Source/Core/Common/StringUtil.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/Source/Core/Common/StringUtil.cpp b/Source/Core/Common/StringUtil.cpp
index 6f50afce3e..ff6c6074cf 100644
--- a/Source/Core/Common/StringUtil.cpp
+++ b/Source/Core/Common/StringUtil.cpp
@@ -247,9 +247,11 @@ bool TryParse(const std::string& str, u32* const output)
bool TryParse(const std::string& str, bool* const output)
{
- if ("1" == str || !strcasecmp("true", str.c_str()))
+ float value;
+ const bool is_valid_float = TryParse(str, &value);
+ if ((is_valid_float && value == 1) || !strcasecmp("true", str.c_str()))
*output = true;
- else if ("0" == str || !strcasecmp("false", str.c_str()))
+ else if ((is_valid_float && value == 0) || !strcasecmp("false", str.c_str()))
*output = false;
else
return false;