From b95c7c44f0bdcf192259814a99b263582eb8889e Mon Sep 17 00:00:00 2001 From: Don Honerbrink Date: Mon, 15 Jun 2015 11:17:49 -0500 Subject: [PATCH] Moving comment filtering to Utils class. Adding comment filtering to collection basic lists (include.txt, exclude.txt, etc). --- .../Source/Collection/CollectionInfoBuilder.cpp | 7 ++++--- RetroFE/Source/Database/Configuration.cpp | 8 ++------ RetroFE/Source/Utility/Utils.cpp | 14 ++++++++++++++ RetroFE/Source/Utility/Utils.h | 1 + 4 files changed, 21 insertions(+), 9 deletions(-) diff --git a/RetroFE/Source/Collection/CollectionInfoBuilder.cpp b/RetroFE/Source/Collection/CollectionInfoBuilder.cpp index 416a57f..c1fefab 100644 --- a/RetroFE/Source/Collection/CollectionInfoBuilder.cpp +++ b/RetroFE/Source/Collection/CollectionInfoBuilder.cpp @@ -203,12 +203,13 @@ bool CollectionInfoBuilder::ImportBasicList(CollectionInfo * /*info*/, std::stri return false; } - std::string line; + std::string line; while(std::getline(includeStream, line)) { - - if(list.find(line) == list.end()) + line = Utils::FilterComments(line); + + if(!line.empty() && list.find(line) == list.end()) { Item *i = new Item(); diff --git a/RetroFE/Source/Database/Configuration.cpp b/RetroFE/Source/Database/Configuration.cpp index ca0fbef..0256061 100644 --- a/RetroFE/Source/Database/Configuration.cpp +++ b/RetroFE/Source/Database/Configuration.cpp @@ -117,12 +117,8 @@ bool Configuration::ParseLine(std::string keyPrefix, std::string line, int lineC std::string delimiter = "="; // strip out any comments - if((position = line.find("#")) != std::string::npos) - { - line = line.substr(0, position); - } - // unix only wants \n. Windows uses \r\n. Strip off the \r for unix. - line.erase( std::remove(line.begin(), line.end(), '\r'), line.end() ); + line = Utils::FilterComments(line); + if(line.empty() || (line.find_first_not_of(" \t\r") == std::string::npos)) { retVal = true; diff --git a/RetroFE/Source/Utility/Utils.cpp b/RetroFE/Source/Utility/Utils.cpp index 6fe7830..99432c1 100644 --- a/RetroFE/Source/Utility/Utils.cpp +++ b/RetroFE/Source/Utility/Utils.cpp @@ -54,6 +54,20 @@ std::string Utils::UppercaseFirst(std::string str) return str; } +std::string Utils::FilterComments(std:;string line) +{ + size_t position; + + // strip out any comments + if((position = line.find("#")) != std::string::npos) + { + line = line.substr(0, position); + } + // unix only wants \n. Windows uses \r\n. Strip off the \r for unix. + line.erase( std::remove(line.begin(), line.end(), '\r'), line.end() ); + + return line; +} std::string Utils::CombinePath(std::list &paths) { diff --git a/RetroFE/Source/Utility/Utils.h b/RetroFE/Source/Utility/Utils.h index e7a678f..addb7b3 100644 --- a/RetroFE/Source/Utility/Utils.h +++ b/RetroFE/Source/Utility/Utils.h @@ -33,6 +33,7 @@ public: static bool FindMatchingFile(std::string prefix, std::vector &extensions, std::string &file); static std::string ToLower(std::string str); static std::string UppercaseFirst(std::string str); + static std::string FilterComments(std::string line); //todo: there has to be a better way to do this static std::string CombinePath(std::list &paths);