diff options
author | Alexander Sulfrian <alexander@sulfrian.net> | 2010-01-18 02:55:02 +0100 |
---|---|---|
committer | Alexander Sulfrian <alexander@sulfrian.net> | 2013-01-05 17:17:45 +0100 |
commit | 7bced9e7855d0292be2da10d40aceb53a6c2575f (patch) | |
tree | 903eaf854a53932d4f0fc5e0b8a07373ad382d79 | |
parent | f2d97dfee2d1a4e67f9fdbb8a1857e8383e5f300 (diff) | |
download | usdx-7bced9e7855d0292be2da10d40aceb53a6c2575f.tar.gz usdx-7bced9e7855d0292be2da10d40aceb53a6c2575f.tar.xz usdx-7bced9e7855d0292be2da10d40aceb53a6c2575f.zip |
added {r,l}trim_newline that only remove '\r' and '\n', remove '\r' from lyrics
-rw-r--r-- | src/base/songloading/songloading_strategy_txt.cpp | 21 | ||||
-rw-r--r-- | src/base/songloading/songloading_strategy_txt.hpp | 10 |
2 files changed, 31 insertions, 0 deletions
diff --git a/src/base/songloading/songloading_strategy_txt.cpp b/src/base/songloading/songloading_strategy_txt.cpp index 1a2c8eaf..2a74dd1d 100644 --- a/src/base/songloading/songloading_strategy_txt.cpp +++ b/src/base/songloading/songloading_strategy_txt.cpp @@ -85,6 +85,16 @@ namespace usdx return line; } + std::string& SongloadingStrategyTxt::ltrim_newlines(std::string& line) + { + std::size_t found = line.find_first_not_of("\n\r"); + if (found != std::string::npos) { + line.erase(0, found - 1); + } + + return line; + } + std::string& SongloadingStrategyTxt::rtrim(std::string& line) { std::size_t found = line.find_last_not_of(" \t\n\r"); @@ -95,6 +105,16 @@ namespace usdx return line; } + std::string& SongloadingStrategyTxt::rtrim_newlines(std::string& line) + { + std::size_t found = line.find_last_not_of("\n\r"); + if (found != std::string::npos) { + line.erase(found + 1); + } + + return line; + } + std::string& SongloadingStrategyTxt::trim(std::string& line) { return ltrim(rtrim(line)); @@ -196,6 +216,7 @@ namespace usdx linestream >> beat >> length >> height >> std::noskipws; linestream.ignore(); getline(linestream, lyric); + rtrim_newlines(lyric); LOG4CXX_DEBUG(log, "Found lyric: '" << lyric << "' at line: " << line_number << " at beat: " << beat << " with length: " << length << diff --git a/src/base/songloading/songloading_strategy_txt.hpp b/src/base/songloading/songloading_strategy_txt.hpp index 0330772b..0f9fd23d 100644 --- a/src/base/songloading/songloading_strategy_txt.hpp +++ b/src/base/songloading/songloading_strategy_txt.hpp @@ -55,6 +55,16 @@ namespace usdx std::string& rtrim(std::string& line); /** + * Removes ''\r'' and ''\n'' in front of the string. + */ + std::string& ltrim_newlines(std::string& line); + + /** + * Removes ''\r'' and ''\n'' behind the string. + */ + std::string& rtrim_newlines(std::string& line); + + /** * Removes whitespaces in front of the string and behind it. */ std::string& trim(std::string& line); |