diff options
| author | nakeee <nakeee@gmail.com> | 2009-02-25 10:33:09 +0000 |
|---|---|---|
| committer | nakeee <nakeee@gmail.com> | 2009-02-25 10:33:09 +0000 |
| commit | bec2a115d80f0086da8b6868ea0482b2fa7a3d68 (patch) | |
| tree | 78aabd4ada9ad89c0d6c32fced4e3e5869af352e /Source/Core/Common/Src/StringUtil.cpp | |
| parent | 04e54f92d20bdcbd6b09a8ff8b9203377f4a80b7 (diff) | |
Added set and get in ini for comma seperated list
Also merged the StripSpaces with StripNewline and
cleaned it up a bit.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@2433 8ced0084-cf51-0410-be5f-012b33b47a6e
Diffstat (limited to 'Source/Core/Common/Src/StringUtil.cpp')
| -rw-r--r-- | Source/Core/Common/Src/StringUtil.cpp | 63 |
1 files changed, 30 insertions, 33 deletions
diff --git a/Source/Core/Common/Src/StringUtil.cpp b/Source/Core/Common/Src/StringUtil.cpp index edfbe3a282..e34bbbafcc 100644 --- a/Source/Core/Common/Src/StringUtil.cpp +++ b/Source/Core/Common/Src/StringUtil.cpp @@ -200,32 +200,24 @@ std::string ArrayToString(const u8 *data, u32 size, u32 offset, int line_len, bo // ================ -// Turns " hej " into "hej". Also handles tabs. +// Turns " hej " into "hej". Also handles tabs and newlines. std::string StripSpaces(const std::string &str) { - std::string s = str; - int i; - for (i = 0; i < (int)s.size(); i++) - { - if ((s[i] != ' ') && (s[i] != 9)) - { - break; - } - } + std::string temp = str; - s = s.substr(i); + // Find first non space char + u32 firstChar = str.find_first_not_of(" \t\n"); - for (i = (int)s.size() - 1; i > 0; i--) - { - if ((s[i] != ' ') && (s[i] != 9)) - { - break; - } - } + // Last char which is not whitespace + u32 lastChar = str.find_last_not_of(" \t\n"); - return s.substr(0, i + 1); -} + if (firstChar != std::string::npos) + temp.resize(firstChar, lastChar); + else + temp = ""; + return temp; +} // "\"hello\"" is turned to "hello" // This one assumes that the string has already been space stripped in both @@ -238,19 +230,6 @@ std::string StripQuotes(const std::string& s) return s; } -// "\"hello\"" is turned to "hello" -// This one assumes that the string has already been space stripped in both -// ends, as done by StripSpaces above, for example. -std::string StripNewline(const std::string& s) -{ - if (!s.size()) - return s; - else if (s[s.size() - 1] == '\n') - return s.substr(0, s.size() - 1); - else - return s; -} - bool TryParseInt(const char* str, int* outVal) { const char* s = str; @@ -461,3 +440,21 @@ std::string ThS(int Integer, bool Unsigned) } +// Remove trailing whitespaces from begining and end of string +std::string Trim(const std::string& str) +{ + std::string temp = str; + + // Find first non space char + u32 firstChar = str.find_first_not_of(" \t\n"); + + // Last char which is not whitespace + u32 lastChar = str.find_last_not_of(" \t\n"); + + if (firstChar != std::string::npos) + temp.resize(firstChar, lastChar); + else + temp = ""; + + return temp; +} |
