From 4812f02b69de4a1c3026fb5fb4f7326f92fe4e51 Mon Sep 17 00:00:00 2001 From: nakeee Date: Wed, 25 Feb 2009 13:31:13 +0000 Subject: [PATCH] Revering stringutil (don't you hate it when ector is right?;) And small compile fix on linux git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@2434 8ced0084-cf51-0410-be5f-012b33b47a6e --- Source/Core/Common/Src/StringUtil.cpp | 63 ++++++++++--------- Source/Core/Common/Src/StringUtil.h | 1 + .../Core/Src/IPC_HLE/WII_IPC_HLE_Device_es.h | 2 +- 3 files changed, 35 insertions(+), 31 deletions(-) diff --git a/Source/Core/Common/Src/StringUtil.cpp b/Source/Core/Common/Src/StringUtil.cpp index e34bbbafcc..edfbe3a282 100644 --- a/Source/Core/Common/Src/StringUtil.cpp +++ b/Source/Core/Common/Src/StringUtil.cpp @@ -200,25 +200,33 @@ std::string ArrayToString(const u8 *data, u32 size, u32 offset, int line_len, bo // ================ -// Turns " hej " into "hej". Also handles tabs and newlines. +// Turns " hej " into "hej". Also handles tabs. std::string StripSpaces(const std::string &str) { - std::string temp = str; + std::string s = str; + int i; + for (i = 0; i < (int)s.size(); i++) + { + if ((s[i] != ' ') && (s[i] != 9)) + { + break; + } + } - // Find first non space char - u32 firstChar = str.find_first_not_of(" \t\n"); + s = s.substr(i); - // Last char which is not whitespace - u32 lastChar = str.find_last_not_of(" \t\n"); + for (i = (int)s.size() - 1; i > 0; i--) + { + if ((s[i] != ' ') && (s[i] != 9)) + { + break; + } + } - if (firstChar != std::string::npos) - temp.resize(firstChar, lastChar); - else - temp = ""; - - return temp; + return s.substr(0, i + 1); } + // "\"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. @@ -230,6 +238,19 @@ 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; @@ -440,21 +461,3 @@ 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; -} diff --git a/Source/Core/Common/Src/StringUtil.h b/Source/Core/Common/Src/StringUtil.h index 511170df65..2ecb1e793f 100644 --- a/Source/Core/Common/Src/StringUtil.h +++ b/Source/Core/Common/Src/StringUtil.h @@ -49,6 +49,7 @@ inline void CharArrayFromFormat(char (& out)[Count], const char* format, ...) std::string StripSpaces(const std::string &s); std::string StripQuotes(const std::string &s); +std::string StripNewline(const std::string &s); std::string ThS(int a, bool b = true); // thousand separator diff --git a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_es.h b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_es.h index 9d6c4715ab..2045f2ca4f 100644 --- a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_es.h +++ b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_es.h @@ -342,7 +342,7 @@ public: u64 TitleID = Memory::Read_U64(Buffer.InBuffer[0].m_Address); u32 Count = Memory::Read_U32(Buffer.InBuffer[1].m_Address); - _dbg_assert_msg_(WII_IPC_HLE, TitleID==0x0000000100000002, "IOCTL_ES_GETVIEWS: TitleID != 00000001/00000002"); + _dbg_assert_msg_(WII_IPC_HLE, TitleID==0x0000000100000002ull, "IOCTL_ES_GETVIEWS: TitleID != 00000001/00000002"); /* write ticket data... hmmm typedef struct _tikview {