Index: src/libchcore/TStringPattern.h =================================================================== diff -u -N -r3401d5079f33b29a7783b65bfad5f34d89a33ba5 -r6d90b96005710c802d5f141b69528e9e87a380c9 --- src/libchcore/TStringPattern.h (.../TStringPattern.h) (revision 3401d5079f33b29a7783b65bfad5f34d89a33ba5) +++ src/libchcore/TStringPattern.h (.../TStringPattern.h) (revision 6d90b96005710c802d5f141b69528e9e87a380c9) @@ -29,31 +29,34 @@ public: enum class EPatternType { - eType_Wildcard + eType_FilenameWildcard, + eType_FullPathWildcard, + eType_FilenameRegex, + eType_FullPathRegex, }; public: - explicit TStringPattern(EPatternType ePatternType = EPatternType::eType_Wildcard); - explicit TStringPattern(const string::TString& strPattern, EPatternType ePatternType = EPatternType::eType_Wildcard); + TStringPattern(); + explicit TStringPattern(const string::TString& strPattern); + explicit TStringPattern(const string::TString& strPattern, EPatternType ePatternType); - void SetPattern(const string::TString& strPattern, EPatternType ePatternType = EPatternType::eType_Wildcard); + void SetPattern(const string::TString& strPattern, EPatternType ePatternType = EPatternType::eType_FilenameWildcard); bool Matches(const TSmartPath& pathToMatch) const; EPatternType GetPatternType() const { return m_ePatternType; } string::TString GetPattern() const { return m_strPattern; } // string parsing - static TStringPattern CreateFromString(const string::TString& strPattern, EPatternType eDefaultPatternType = EPatternType::eType_Wildcard); + static TStringPattern CreateFromString(const string::TString& strPattern); - void FromString(const string::TString& strPattern, EPatternType eDefaultPatternType = EPatternType::eType_Wildcard); + void FromString(const string::TString& strPattern); string::TString ToString() const; bool operator==(const TStringPattern& rSrc) const; bool operator!=(const TStringPattern& rSrc) const; private: - bool MatchMask(LPCTSTR lpszMask, LPCTSTR lpszString) const; - bool Scan(LPCTSTR& lpszMask, LPCTSTR& lpszString) const; + std::wstring ConvertGlobToRegex() const; private: string::TString m_strPattern;