Index: src/libchcore/TPath.h =================================================================== diff -u -N -r39db7f4bffdd185122d8dab0772bd6fc49a0b675 -r3f72015a9db19bd1b0a5e20e0f1aa0ec00bda529 --- src/libchcore/TPath.h (.../TPath.h) (revision 39db7f4bffdd185122d8dab0772bd6fc49a0b675) +++ src/libchcore/TPath.h (.../TPath.h) (revision 3f72015a9db19bd1b0a5e20e0f1aa0ec00bda529) @@ -27,6 +27,7 @@ { public: TPath(); + TPath(const TPath& rSrc); ~TPath(); long AddRef() { return ++m_lRefCount; } @@ -35,6 +36,7 @@ protected: static TPath* New(); + TPath* Clone(); static void Delete(TPath* pPath); protected: @@ -67,12 +69,30 @@ TSmartPath operator+(const TSmartPath& rPath) const; TSmartPath& operator+=(const TSmartPath& rPath); - operator tstring_t() const; + operator const tstring_t() const; + operator const wchar_t*() const + { + if(m_pPath) + return m_pPath->m_strPath.c_str(); + + return NULL; + } + bool Compare(const TSmartPath& rPath, bool bCaseSensitive) const; bool IsChildOf(const TSmartPath& rPath, bool bCaseSensitive) const; + void AppendIfNotExists(const wchar_t* pszPostfix, bool bCaseSensitive); + void CutIfExists(const wchar_t* pszPostfix, bool bCaseSensitive); + + TSmartPath GetLastComponent(const wchar_t* pszSeparator, bool bCaseSensitive); + + bool IsEmpty() const; + protected: + void PrepareToWrite(); + +protected: TPath* m_pPath; };