From df145ca0f391839aefbff7be9fd8353840127d60 Mon Sep 17 00:00:00 2001 From: LogicParrot Date: Thu, 14 Apr 2016 12:40:46 +0300 Subject: Revert "Issue3136" --- src/IniFile.cpp | 3 +++ src/OverridesSettingsRepository.cpp | 30 ++++++++++++++++++------------ src/main.cpp | 8 ++++++-- 3 files changed, 27 insertions(+), 14 deletions(-) diff --git a/src/IniFile.cpp b/src/IniFile.cpp index 6b9bc9951..4a1c8e735 100644 --- a/src/IniFile.cpp +++ b/src/IniFile.cpp @@ -963,3 +963,6 @@ AStringVector ReadUpgradeIniPorts( return Ports; } + + + diff --git a/src/OverridesSettingsRepository.cpp b/src/OverridesSettingsRepository.cpp index f3db96a5c..9e85abce6 100644 --- a/src/OverridesSettingsRepository.cpp +++ b/src/OverridesSettingsRepository.cpp @@ -108,26 +108,31 @@ std::vector> cOverridesSettingsRepository::GetValues { auto overrides = m_Overrides->GetValues(a_keyName); auto main = m_Main->GetValues(a_keyName); + std::sort(overrides.begin(), overrides.end(), [](std::pair a, std::pair b) -> bool { return a < b ;}); + std::sort(main.begin(), main.end(), [](std::pair a, std::pair b) -> bool { return a < b ;}); - auto ret = overrides; + std::vector> ret; - for (const auto & mainpair : main) + + size_t overridesIndex = 0; + for (auto pair : main) { - bool found = false; - for (const auto & returnpair : ret) + if (overridesIndex >= overrides.size()) + { + ret.push_back(pair); + continue; + } + if (pair.first == overrides[overridesIndex].first) { - if (returnpair.first == mainpair.first) - { - found = true; - break; - } + continue; } - if (found == false) + while (pair.first > overrides[overridesIndex].first) { - ret.push_back(mainpair); + ret.push_back(overrides[overridesIndex]); + overridesIndex++; } + ret.push_back(pair); } - return ret; } @@ -265,3 +270,4 @@ bool cOverridesSettingsRepository::Flush() { return m_Overrides->Flush() && m_Main->Flush(); } + diff --git a/src/main.cpp b/src/main.cpp index 2c277d732..76af90cde 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -371,7 +371,7 @@ static std::unique_ptr ParseArguments(int argc, char // Parse the comand line args: TCLAP::CmdLine cmd("Cuberite"); TCLAP::ValueArg slotsArg ("s", "max-players", "Maximum number of slots for the server to use, overrides setting in setting.ini", false, -1, "number", cmd); - TCLAP::MultiArg portsArg ("p", "port", "The port numbers the server should listen to", false, "port", cmd); + TCLAP::MultiArg portsArg ("p", "port", "The port number the server should listen to", false, "port", cmd); TCLAP::SwitchArg commLogArg ("", "log-comm", "Log server client communications to file", cmd); TCLAP::SwitchArg commLogInArg ("", "log-comm-in", "Log inbound server client communications to file", cmd); TCLAP::SwitchArg commLogOutArg ("", "log-comm-out", "Log outbound server client communications to file", cmd); @@ -392,7 +392,7 @@ static std::unique_ptr ParseArguments(int argc, char { for (auto port: portsArg.getValue()) { - repo->AddValue("Server", "Ports", static_cast(port)); + repo->AddValue("Server", "Port", static_cast(port)); } } if (commLogArg.getValue()) @@ -555,3 +555,7 @@ int main(int argc, char ** argv) return EXIT_SUCCESS; } + + + + -- cgit v1.2.3