diff --git a/Source/Core/Common/Common.vcxproj b/Source/Core/Common/Common.vcxproj index 853cff6d0f..7d8ba3b2b0 100644 --- a/Source/Core/Common/Common.vcxproj +++ b/Source/Core/Common/Common.vcxproj @@ -55,9 +55,9 @@ + - @@ -170,8 +170,8 @@ + - diff --git a/Source/Core/Common/Config/ConfigInfo.cpp b/Source/Core/Common/Config/ConfigInfo.cpp index cc34a2d9f0..47d2e25c84 100644 --- a/Source/Core/Common/Config/ConfigInfo.cpp +++ b/Source/Core/Common/Config/ConfigInfo.cpp @@ -2,15 +2,17 @@ // Licensed under GPLv2+ // Refer to the license.txt file included. -#include +#include +#include "Common/CommonFuncs.h" #include "Common/Config/ConfigInfo.h" namespace Config { bool ConfigLocation::operator==(const ConfigLocation& other) const { - return std::tie(system, section, key) == std::tie(other.system, other.section, other.key); + return system == other.system && strcasecmp(section.c_str(), other.section.c_str()) == 0 && + strcasecmp(key.c_str(), other.key.c_str()) == 0; } bool ConfigLocation::operator!=(const ConfigLocation& other) const @@ -20,6 +22,14 @@ bool ConfigLocation::operator!=(const ConfigLocation& other) const bool ConfigLocation::operator<(const ConfigLocation& other) const { - return std::tie(system, section, key) < std::tie(other.system, other.section, other.key); + if (system != other.system) + return system < other.system; + + const int section_compare = strcasecmp(section.c_str(), other.section.c_str()); + if (section_compare != 0) + return section_compare < 0; + + const int key_compare = strcasecmp(key.c_str(), other.key.c_str()); + return key_compare < 0; } }