Index: src/libchcore/TString.cpp =================================================================== diff -u -N -rd56d66c19fc54562eb0c8e54bc6acff1e7eb4ef8 -r9479911a096555a7504c5c8a8eaee83ecb63440c --- src/libchcore/TString.cpp (.../TString.cpp) (revision d56d66c19fc54562eb0c8e54bc6acff1e7eb4ef8) +++ src/libchcore/TString.cpp (.../TString.cpp) (revision 9479911a096555a7504c5c8a8eaee83ecb63440c) @@ -463,6 +463,31 @@ } } + +void TString::TrimRightSelf(const wchar_t* pszElements) +{ + if(!pszElements || pszElements[0] == L'\0') + return; + + size_t stLen = GetLength(); + if(stLen == 0) + return; + + EnsureWritable(stLen); + + const wchar_t* pszElementsEnd = pszElements + stLen; + while(stLen -- > 0) + { + if(std::find(pszElements, pszElementsEnd, m_pszStringData[stLen]) != pszElementsEnd) + { + m_pszStringData[stLen] = _T('\0'); + GetInternalStringData()->SetStringLength(stLen); + } + else + break; + } +} + bool TString::Delete(size_t stIndex, size_t stCount) { size_t stCurrentLength = GetLength();