From 6787843b378c8f877f581709f1451212e4287a26 Mon Sep 17 00:00:00 2001 From: Lion Kortlepel Date: Thu, 28 Dec 2023 12:58:29 +0100 Subject: [PATCH] pretty-print tags on startup --- include/Common.h | 2 ++ include/TConfig.h | 1 + src/Common.cpp | 11 +++++++++++ src/TConfig.cpp | 12 +++++++++++- src/TConsole.cpp | 11 ----------- 5 files changed, 25 insertions(+), 12 deletions(-) diff --git a/include/Common.h b/include/Common.h index fab1d30..df26435 100644 --- a/include/Common.h +++ b/include/Common.h @@ -137,6 +137,8 @@ private: static inline Version mVersion { 3, 2, 0 }; }; +void SplitString(std::string const& str, const char delim, std::vector& out); + std::string ThreadName(bool DebugModeOverride = false); void RegisterThread(const std::string& str); #define RegisterThreadAuto() RegisterThread(__func__) diff --git a/include/TConfig.h b/include/TConfig.h index 634fcb8..72fe2c1 100644 --- a/include/TConfig.h +++ b/include/TConfig.h @@ -27,6 +27,7 @@ private: void TryReadValue(toml::value& Table, const std::string& Category, const std::string_view& Key, int& OutValue); void ParseOldFormat(); + std::string TagsAsPrettyArray() const; bool IsDefault(); bool mFailed { false }; std::string mConfigFileName; diff --git a/src/Common.cpp b/src/Common.cpp index af345ad..d68dcf1 100644 --- a/src/Common.cpp +++ b/src/Common.cpp @@ -348,3 +348,14 @@ std::string GetPlatformAgnosticErrorString() { return "(no human-readable errors on this platform)"; #endif } + +// TODO: add unit tests to SplitString +void SplitString(const std::string& str, const char delim, std::vector& out) { + size_t start; + size_t end = 0; + + while ((start = str.find_first_not_of(delim, end)) != std::string::npos) { + end = str.find(delim, start); + out.push_back(str.substr(start, end - start)); + } +} diff --git a/src/TConfig.cpp b/src/TConfig.cpp index cc69c85..4ae18b7 100644 --- a/src/TConfig.cpp +++ b/src/TConfig.cpp @@ -214,7 +214,7 @@ void TConfig::PrintDebug() { beammp_debug(std::string(StrMap) + ": \"" + Application::Settings.MapName + "\""); beammp_debug(std::string(StrName) + ": \"" + Application::Settings.ServerName + "\""); beammp_debug(std::string(StrDescription) + ": \"" + Application::Settings.ServerDesc + "\""); - beammp_debug(std::string(StrTags) + ": \"" + Application::Settings.ServerTags + "\""); + beammp_debug(std::string(StrTags) + ": " + TagsAsPrettyArray()); beammp_debug(std::string(StrLogChat) + ": \"" + (Application::Settings.LogChat ? "true" : "false") + "\""); beammp_debug(std::string(StrResourceFolder) + ": \"" + Application::Settings.Resource + "\""); // special! @@ -274,3 +274,13 @@ void TConfig::ParseOldFormat() { Str >> std::ws; } } +std::string TConfig::TagsAsPrettyArray() const { + std::vector TagsArray = {}; + SplitString(Application::Settings.ServerTags, ',', TagsArray); + std::string Pretty = {}; + for (size_t i = 0; i < TagsArray.size() - 1; ++i) { + Pretty += '\"' + TagsArray[i] + "\", "; + } + Pretty += '\"' + TagsArray.at(TagsArray.size()-1) + "\""; + return Pretty; +} diff --git a/src/TConsole.cpp b/src/TConsole.cpp index cde978e..11e753e 100644 --- a/src/TConsole.cpp +++ b/src/TConsole.cpp @@ -52,17 +52,6 @@ TEST_CASE("TrimString") { CHECK(TrimString("") == ""); } -// TODO: add unit tests to SplitString -static inline void SplitString(std::string const& str, const char delim, std::vector& out) { - size_t start; - size_t end = 0; - - while ((start = str.find_first_not_of(delim, end)) != std::string::npos) { - end = str.find(delim, start); - out.push_back(str.substr(start, end - start)); - } -} - static std::string GetDate() { std::chrono::system_clock::time_point now = std::chrono::system_clock::now(); time_t tt = std::chrono::system_clock::to_time_t(now);