From bc8d8b8fa10203892be339b1e173ead29936df62 Mon Sep 17 00:00:00 2001 From: zilmar Date: Mon, 30 Nov 2015 06:21:47 +1100 Subject: [PATCH] [Projct64] Clean up std string.cpp --- Source/Common/std string.cpp | 338 ++++++++++++++++++----------------- Source/Common/std string.h | 77 ++++---- 2 files changed, 208 insertions(+), 207 deletions(-) diff --git a/Source/Common/std string.cpp b/Source/Common/std string.cpp index 9deb6067c..2f7c2feec 100644 --- a/Source/Common/std string.cpp +++ b/Source/Common/std string.cpp @@ -6,49 +6,49 @@ stdstr::stdstr() { } -stdstr::stdstr( const std::string & str ) : - std::string(str) +stdstr::stdstr(const std::string & str) : +std::string(str) { } -stdstr::stdstr( const stdstr & str ) : - std::string((const std::string &)str) +stdstr::stdstr(const stdstr & str) : +std::string((const std::string &)str) { } -stdstr::stdstr( const char * str ) : +stdstr::stdstr(const char * str) : std::string(str ? str : "") { } strvector stdstr::Tokenize(const char * delimiter) const { - strvector tokens; + strvector tokens; - stdstr::size_type lastPos = find_first_not_of(delimiter, 0); - stdstr::size_type pos = find_first_of(delimiter, lastPos); - while (stdstr::npos != pos || stdstr::npos != lastPos) - { - tokens.push_back(substr(lastPos, pos - lastPos)); - lastPos = find_first_not_of(delimiter, pos); - pos = find_first_of(delimiter, lastPos); - } - return tokens; + stdstr::size_type lastPos = find_first_not_of(delimiter, 0); + stdstr::size_type pos = find_first_of(delimiter, lastPos); + while (stdstr::npos != pos || stdstr::npos != lastPos) + { + tokens.push_back(substr(lastPos, pos - lastPos)); + lastPos = find_first_not_of(delimiter, pos); + pos = find_first_of(delimiter, lastPos); + } + return tokens; } strvector stdstr::Tokenize(char delimiter) const { - strvector tokens; + strvector tokens; - stdstr::size_type lastPos = find_first_not_of(delimiter, 0); - stdstr::size_type pos = find_first_of(delimiter, lastPos); - while (stdstr::npos != pos || stdstr::npos != lastPos) - { - tokens.push_back(substr(lastPos, pos - lastPos)); - lastPos = find_first_not_of(delimiter, pos); - pos = find_first_of(delimiter, lastPos); - } - return tokens; + stdstr::size_type lastPos = find_first_not_of(delimiter, 0); + stdstr::size_type pos = find_first_of(delimiter, lastPos); + while (stdstr::npos != pos || stdstr::npos != lastPos) + { + tokens.push_back(substr(lastPos, pos - lastPos)); + lastPos = find_first_not_of(delimiter, pos); + pos = find_first_of(delimiter, lastPos); + } + return tokens; } void stdstr::ArgFormat(const char * strFormat, va_list & args) @@ -56,188 +56,190 @@ void stdstr::ArgFormat(const char * strFormat, va_list & args) #pragma warning(push) #pragma warning(disable:4996) - size_t nlen = _vscprintf( strFormat, args ) + 1; - char * buffer = (char *)alloca(nlen * sizeof(char)); - buffer[nlen - 1] = 0; - if(buffer != NULL) - { - vsprintf( buffer, strFormat , args ); - *this = buffer; - } + size_t nlen = _vscprintf(strFormat, args) + 1; + char * buffer = (char *)alloca(nlen * sizeof(char)); + buffer[nlen - 1] = 0; + if (buffer != NULL) + { + vsprintf(buffer, strFormat, args); + *this = buffer; + } #pragma warning(pop) } void stdstr::Format(const char * strFormat, ...) { - va_list args; - va_start(args, strFormat); - ArgFormat(strFormat,args); - va_end(args); + va_list args; + va_start(args, strFormat); + ArgFormat(strFormat, args); + va_end(args); } stdstr& stdstr::ToLower(void) { - std::transform(begin(), end(), begin(), (int(*)(int)) tolower); - return *this; + std::transform(begin(), end(), begin(), (int(*)(int)) tolower); + return *this; } stdstr& stdstr::ToUpper(void) { - std::transform(begin(), end(), begin(), (int(*)(int)) toupper); - return *this; + std::transform(begin(), end(), begin(), (int(*)(int)) toupper); + return *this; } -void stdstr::Replace(const char search, const char replace ) +void stdstr::Replace(const char search, const char replace) { - std::string& str = *this; - std::string::size_type pos = str.find( search ); - while ( pos != std::string::npos ) - { - str.replace( pos, 1, &replace ); - pos = str.find( search, pos + 1 ); - } + std::string& str = *this; + std::string::size_type pos = str.find(search); + while (pos != std::string::npos) + { + str.replace(pos, 1, &replace); + pos = str.find(search, pos + 1); + } } -void stdstr::Replace(const char * search, const char replace ) +void stdstr::Replace(const char * search, const char replace) { - std::string& str = *this; - std::string::size_type pos = str.find( search ); - size_t SearchSize = strlen(search); - while ( pos != std::string::npos ) - { - str.replace( pos, SearchSize, &replace ); - pos = str.find( search, pos + 1 ); - } + std::string& str = *this; + std::string::size_type pos = str.find(search); + size_t SearchSize = strlen(search); + while (pos != std::string::npos) + { + str.replace(pos, SearchSize, &replace); + pos = str.find(search, pos + 1); + } } -void stdstr::Replace(const std::string& search, const std::string& replace ) +void stdstr::Replace(const std::string& search, const std::string& replace) { - std::string& str = *this; - std::string::size_type pos = str.find( search ); - size_t SearchSize = search.size(); - while ( pos != std::string::npos ) - { - str.replace( pos, SearchSize, replace ); - pos = str.find( search, pos + replace.length() ); - } + std::string& str = *this; + std::string::size_type pos = str.find(search); + size_t SearchSize = search.size(); + while (pos != std::string::npos) + { + str.replace(pos, SearchSize, replace); + pos = str.find(search, pos + replace.length()); + } } -stdstr & stdstr::TrimLeft (const char * chars2remove) +stdstr & stdstr::TrimLeft(const char * chars2remove) { - if (!empty()) - { - std::string::size_type pos = find_first_not_of(chars2remove); - if (pos != std::string::npos) - { - erase(0,pos); - } else { - erase(begin(), end()); // make empty - } - } - return *this; + if (!empty()) + { + std::string::size_type pos = find_first_not_of(chars2remove); + if (pos != std::string::npos) + { + erase(0, pos); + } + else { + erase(begin(), end()); // make empty + } + } + return *this; } -stdstr & stdstr::TrimRight (const char * chars2remove) +stdstr & stdstr::TrimRight(const char * chars2remove) { - if (!empty()) - { - std::string::size_type pos = find_last_not_of(chars2remove); - if (pos != std::string::npos) - { - erase(pos+1); - } else { - erase(begin(), end()); // make empty - } - } - return *this; + if (!empty()) + { + std::string::size_type pos = find_last_not_of(chars2remove); + if (pos != std::string::npos) + { + erase(pos + 1); + } + else { + erase(begin(), end()); // make empty + } + } + return *this; } -stdstr & stdstr::Trim (const char * chars2remove) +stdstr & stdstr::Trim(const char * chars2remove) { - if (!empty()) - { - std::string::size_type pos = find_first_not_of(chars2remove); - if (pos != std::string::npos) - { - erase(0,pos); - } - else - { - erase(begin(), end()); // make empty - } + if (!empty()) + { + std::string::size_type pos = find_first_not_of(chars2remove); + if (pos != std::string::npos) + { + erase(0, pos); + } + else + { + erase(begin(), end()); // make empty + } - pos = find_last_not_of(chars2remove); - if (pos != std::string::npos) - { - erase(pos+1); - } - else - { - erase(begin(), end()); // make empty - } - } - return *this; + pos = find_last_not_of(chars2remove); + if (pos != std::string::npos) + { + erase(pos + 1); + } + else + { + erase(begin(), end()); // make empty + } + } + return *this; } -stdstr & stdstr::FromUTF16 ( const wchar_t * UTF16Source, bool * bSuccess ) +stdstr & stdstr::FromUTF16(const wchar_t * UTF16Source, bool * bSuccess) { - bool bConverted = false; + bool bConverted = false; - if (UTF16Source == NULL) - { - *this = ""; - bConverted = true; - } - else if(wcslen(UTF16Source) > 0) - { - DWORD nNeeded = WideCharToMultiByte(CP_UTF8, 0, UTF16Source, -1, NULL, 0, NULL, NULL); - if(nNeeded > 0) - { - char * buf = (char *)alloca(nNeeded + 1); - if( buf != NULL ) - { - memset(buf, 0, nNeeded + 1); + if (UTF16Source == NULL) + { + *this = ""; + bConverted = true; + } + else if (wcslen(UTF16Source) > 0) + { + DWORD nNeeded = WideCharToMultiByte(CP_UTF8, 0, UTF16Source, -1, NULL, 0, NULL, NULL); + if (nNeeded > 0) + { + char * buf = (char *)alloca(nNeeded + 1); + if (buf != NULL) + { + memset(buf, 0, nNeeded + 1); - nNeeded = WideCharToMultiByte(CP_UTF8, 0, UTF16Source, -1, buf, nNeeded, NULL, NULL); - if (nNeeded) - { - *this = buf; - bConverted = true; - } - } - } - } - if (bSuccess) - { - *bSuccess = bConverted; - } - return *this; + nNeeded = WideCharToMultiByte(CP_UTF8, 0, UTF16Source, -1, buf, nNeeded, NULL, NULL); + if (nNeeded) + { + *this = buf; + bConverted = true; + } + } + } + } + if (bSuccess) + { + *bSuccess = bConverted; + } + return *this; } -std::wstring stdstr::ToUTF16 ( bool * bSuccess) +std::wstring stdstr::ToUTF16(bool * bSuccess) { - bool bConverted = false; - std::wstring res; + bool bConverted = false; + std::wstring res; - DWORD nNeeded = MultiByteToWideChar(CP_UTF8, 0, this->c_str(), (int)this->length(), NULL, 0); - if(nNeeded > 0) - { - wchar_t * buf = (wchar_t *)alloca((nNeeded + 1) * sizeof(wchar_t)); - if( buf != NULL ) - { - memset(buf, 0, (nNeeded + 1) * sizeof(wchar_t)); + DWORD nNeeded = MultiByteToWideChar(CP_UTF8, 0, this->c_str(), (int)this->length(), NULL, 0); + if (nNeeded > 0) + { + wchar_t * buf = (wchar_t *)alloca((nNeeded + 1) * sizeof(wchar_t)); + if (buf != NULL) + { + memset(buf, 0, (nNeeded + 1) * sizeof(wchar_t)); - nNeeded = MultiByteToWideChar(CP_UTF8, 0, this->c_str(), (int)this->length(), buf, nNeeded); - if (nNeeded) - { - res = buf; - bConverted = true; - } - } - } - if (bSuccess) - { - *bSuccess = bConverted; - } - return res; -} + nNeeded = MultiByteToWideChar(CP_UTF8, 0, this->c_str(), (int)this->length(), buf, nNeeded); + if (nNeeded) + { + res = buf; + bConverted = true; + } + } + } + if (bSuccess) + { + *bSuccess = bConverted; + } + return res; +} \ No newline at end of file diff --git a/Source/Common/std string.h b/Source/Common/std string.h index c7ebd007e..53931831b 100644 --- a/Source/Common/std string.h +++ b/Source/Common/std string.h @@ -9,63 +9,62 @@ class stdstr; typedef std::vector strvector; -class stdstr : - public std::string +class stdstr : + public std::string { public: - stdstr(); - stdstr( const std::string & str ); - stdstr( const stdstr & str ); - stdstr( const char * str ); + stdstr(); + stdstr(const std::string & str); + stdstr(const stdstr & str); + stdstr(const char * str); - strvector Tokenize ( char delimiter ) const; - strvector Tokenize ( const char * delimiter ) const; - void Format ( const char * strFormat, ... ); - stdstr& ToLower ( void ); - stdstr& ToUpper ( void ); + strvector Tokenize(char delimiter) const; + strvector Tokenize(const char * delimiter) const; + void Format(const char * strFormat, ...); + stdstr& ToLower(void); + stdstr& ToUpper(void); - void Replace ( const char search, const char replace ); - void Replace ( const char * search, const char replace ); - void Replace ( const std::string & search, const std::string & replace ); + void Replace(const char search, const char replace); + void Replace(const char * search, const char replace); + void Replace(const std::string & search, const std::string & replace); - stdstr & Trim ( const char * chars2remove = "\t " ); - stdstr & TrimLeft ( const char * chars2remove = "\t " ); - stdstr & TrimRight ( const char * chars2remove = "\t " ); + stdstr & Trim(const char * chars2remove = "\t "); + stdstr & TrimLeft(const char * chars2remove = "\t "); + stdstr & TrimRight(const char * chars2remove = "\t "); - stdstr & FromUTF16 ( const wchar_t * UTF16Source, bool * bSuccess = NULL); - std::wstring ToUTF16 ( bool * bSuccess = NULL); + stdstr & FromUTF16(const wchar_t * UTF16Source, bool * bSuccess = NULL); + std::wstring ToUTF16(bool * bSuccess = NULL); - void ArgFormat( const char * strFormat, va_list & args); + void ArgFormat(const char * strFormat, va_list & args); +}; -}; - -class stdstr_f: public stdstr +class stdstr_f : public stdstr { public: - stdstr_f(const char * strFormat, ...) - { - va_list args; - va_start(args, strFormat); - ArgFormat(strFormat,args); - va_end(args); - } + stdstr_f(const char * strFormat, ...) + { + va_list args; + va_start(args, strFormat); + ArgFormat(strFormat, args); + va_end(args); + } }; class stdwstr_f : public std::wstring { public: - stdwstr_f(const wchar_t * strFormat, ...) - { - va_list args; - va_start(args, strFormat); + stdwstr_f(const wchar_t * strFormat, ...) + { + va_list args; + va_start(args, strFormat); - wchar_t Msg[1000]; - _vsnwprintf(Msg, sizeof(Msg) - 1, strFormat, args); + wchar_t Msg[1000]; + _vsnwprintf(Msg, sizeof(Msg) - 1, strFormat, args); - va_end(args); + va_end(args); - this->assign(Msg); - } + this->assign(Msg); + } }; typedef std::list strlist;