Index: src/libchcore/TStringPattern.cpp =================================================================== diff -u -N --- src/libchcore/TStringPattern.cpp (revision 0) +++ src/libchcore/TStringPattern.cpp (revision 22c7d5559ca17c9b1859d2283b667516b23ac597) @@ -0,0 +1,142 @@ +#include "stdafx.h" +#include "TStringPattern.h" +#include + +using namespace string; + +namespace chcore +{ + namespace + { + bool _tcicmp(TCHAR c1, TCHAR c2) + { + TCHAR ch1[2] = { c1, 0 }, ch2[2] = { c2, 0 }; + return (_tcsicmp(ch1, ch2) == 0); + } + } + + TStringPattern::TStringPattern(EPatternType ePatternType) : + m_ePatternType(ePatternType) + { + } + + TStringPattern::TStringPattern(const TString& strPattern, EPatternType ePatternType) : + m_strPattern(strPattern), + m_ePatternType(ePatternType) + { + } + + TStringPattern TStringPattern::CreateFromString(const TString& strPattern, EPatternType eDefaultPatternType) + { + TStringPattern pattern; + pattern.FromString(strPattern, eDefaultPatternType); + return pattern; + } + + void TStringPattern::FromString(const TString& strPattern, EPatternType eDefaultPatternType) + { + m_ePatternType = eDefaultPatternType; + if (strPattern.StartsWith(L"WC;")) + { + m_strPattern = strPattern.Mid(3); + m_ePatternType = EPatternType::eType_Wildcard; + } + else + m_strPattern = strPattern; + } + + TString TStringPattern::ToString() const + { + TString strPrefix; + switch (m_ePatternType) + { + case EPatternType::eType_Wildcard: + break; // wildcard won't have any prefix (it's implicit) + + default: + throw std::invalid_argument("Pattern type not supported"); + } + + return TString(strPrefix + m_strPattern); + } + + bool TStringPattern::operator!=(const TStringPattern& rSrc) const + { + return m_ePatternType != rSrc.m_ePatternType || m_strPattern != rSrc.m_strPattern; + } + + bool TStringPattern::operator==(const TStringPattern& rSrc) const + { + return m_ePatternType == rSrc.m_ePatternType && m_strPattern == rSrc.m_strPattern; + } + + bool TStringPattern::MatchMask(LPCTSTR lpszMask, LPCTSTR lpszString) const + { + bool bMatch = true; + + //iterate and delete '?' and '*' one by one + while (*lpszMask != _T('\0') && bMatch && *lpszString != _T('\0')) + { + if (*lpszMask == _T('?')) lpszString++; + else if (*lpszMask == _T('*')) + { + bMatch = Scan(lpszMask, lpszString); + lpszMask--; + } + else + { + bMatch = _tcicmp(*lpszMask, *lpszString); + lpszString++; + } + lpszMask++; + } + while (*lpszMask == _T('*') && bMatch) + lpszMask++; + + return bMatch && *lpszString == _T('\0') && *lpszMask == _T('\0'); + } + + // scan '?' and '*' + bool TStringPattern::Scan(LPCTSTR& lpszMask, LPCTSTR& lpszString) const + { + // remove the '?' and '*' + for (lpszMask++; *lpszString != _T('\0') && (*lpszMask == _T('?') || *lpszMask == _T('*')); lpszMask++) + if (*lpszMask == _T('?')) lpszString++; + while (*lpszMask == _T('*')) lpszMask++; + + // if lpszString is empty and lpszMask has more characters or, + // lpszMask is empty, return + if (*lpszString == _T('\0') && *lpszMask != _T('\0')) + return false; + if (*lpszString == _T('\0') && *lpszMask == _T('\0')) + return true; + // else search substring + LPCTSTR wdsCopy = lpszMask; + LPCTSTR lpszStringCopy = lpszString; + bool bMatch = true; + do + { + if (!MatchMask(lpszMask, lpszString)) lpszStringCopy++; + lpszMask = wdsCopy; + lpszString = lpszStringCopy; + while (!(_tcicmp(*lpszMask, *lpszString)) && (*lpszString != '\0')) lpszString++; + wdsCopy = lpszMask; + lpszStringCopy = lpszString; + } while ((*lpszString != _T('\0')) ? !MatchMask(lpszMask, lpszString) : (bMatch = false) != false); + + if (*lpszString == _T('\0') && *lpszMask == _T('\0')) return true; + + return bMatch; + } + + bool TStringPattern::Matches(const TString& strTextToMatch) const + { + return MatchMask(m_strPattern.c_str(), strTextToMatch.c_str()); + } + + void TStringPattern::SetPattern(const TString& strPattern, EPatternType ePatternType) + { + m_ePatternType = ePatternType; + m_strPattern = strPattern; + } +} Index: src/libstring/TStringPattern.cpp =================================================================== diff -u -N --- src/libstring/TStringPattern.cpp (revision fadd6c9c628de875716d96c3a497b5bc6c8dca8a) +++ src/libstring/TStringPattern.cpp (revision 0) @@ -1,141 +0,0 @@ -#include "stdafx.h" -#include "TStringPattern.h" -#include -#include "TStringException.h" - -namespace string -{ - namespace - { - bool _tcicmp(TCHAR c1, TCHAR c2) - { - TCHAR ch1[2] = { c1, 0 }, ch2[2] = { c2, 0 }; - return (_tcsicmp(ch1, ch2) == 0); - } - } - - TStringPattern::TStringPattern(EPatternType ePatternType) : - m_ePatternType(ePatternType) - { - } - - TStringPattern::TStringPattern(const TString& strPattern, EPatternType ePatternType) : - m_strPattern(strPattern), - m_ePatternType(ePatternType) - { - } - - TStringPattern TStringPattern::CreateFromString(const TString& strPattern, EPatternType eDefaultPatternType) - { - TStringPattern pattern; - pattern.FromString(strPattern, eDefaultPatternType); - return pattern; - } - - void TStringPattern::FromString(const TString& strPattern, EPatternType eDefaultPatternType) - { - m_ePatternType = eDefaultPatternType; - if (strPattern.StartsWith(L"WC;")) - { - m_strPattern = strPattern.Mid(3); - m_ePatternType = EPatternType::eType_Wildcard; - } - else - m_strPattern = strPattern; - } - - TString TStringPattern::ToString() const - { - TString strPrefix; - switch (m_ePatternType) - { - case EPatternType::eType_Wildcard: - break; // wildcard won't have any prefix (it's implicit) - - default: - throw TStringException("Pattern type not supported"); - } - - return TString(strPrefix + m_strPattern); - } - - bool TStringPattern::operator!=(const TStringPattern& rSrc) const - { - return m_ePatternType != rSrc.m_ePatternType || m_strPattern != rSrc.m_strPattern; - } - - bool TStringPattern::operator==(const TStringPattern& rSrc) const - { - return m_ePatternType == rSrc.m_ePatternType && m_strPattern == rSrc.m_strPattern; - } - - bool TStringPattern::MatchMask(LPCTSTR lpszMask, LPCTSTR lpszString) const - { - bool bMatch = true; - - //iterate and delete '?' and '*' one by one - while (*lpszMask != _T('\0') && bMatch && *lpszString != _T('\0')) - { - if (*lpszMask == _T('?')) lpszString++; - else if (*lpszMask == _T('*')) - { - bMatch = Scan(lpszMask, lpszString); - lpszMask--; - } - else - { - bMatch = _tcicmp(*lpszMask, *lpszString); - lpszString++; - } - lpszMask++; - } - while (*lpszMask == _T('*') && bMatch) - lpszMask++; - - return bMatch && *lpszString == _T('\0') && *lpszMask == _T('\0'); - } - - // scan '?' and '*' - bool TStringPattern::Scan(LPCTSTR& lpszMask, LPCTSTR& lpszString) const - { - // remove the '?' and '*' - for (lpszMask++; *lpszString != _T('\0') && (*lpszMask == _T('?') || *lpszMask == _T('*')); lpszMask++) - if (*lpszMask == _T('?')) lpszString++; - while (*lpszMask == _T('*')) lpszMask++; - - // if lpszString is empty and lpszMask has more characters or, - // lpszMask is empty, return - if (*lpszString == _T('\0') && *lpszMask != _T('\0')) - return false; - if (*lpszString == _T('\0') && *lpszMask == _T('\0')) - return true; - // else search substring - LPCTSTR wdsCopy = lpszMask; - LPCTSTR lpszStringCopy = lpszString; - bool bMatch = true; - do - { - if (!MatchMask(lpszMask, lpszString)) lpszStringCopy++; - lpszMask = wdsCopy; - lpszString = lpszStringCopy; - while (!(_tcicmp(*lpszMask, *lpszString)) && (*lpszString != '\0')) lpszString++; - wdsCopy = lpszMask; - lpszStringCopy = lpszString; - } while ((*lpszString != _T('\0')) ? !MatchMask(lpszMask, lpszString) : (bMatch = false) != false); - - if (*lpszString == _T('\0') && *lpszMask == _T('\0')) return true; - - return bMatch; - } - - bool TStringPattern::Matches(const TString& strTextToMatch) const - { - return MatchMask(m_strPattern.c_str(), strTextToMatch.c_str()); - } - - void TStringPattern::SetPattern(const TString& strPattern, EPatternType ePatternType) - { - m_ePatternType = ePatternType; - m_strPattern = strPattern; - } -} Index: src/libchcore/TStringPattern.h =================================================================== diff -u -N --- src/libchcore/TStringPattern.h (revision 0) +++ src/libchcore/TStringPattern.h (revision 22c7d5559ca17c9b1859d2283b667516b23ac597) @@ -0,0 +1,61 @@ +// ============================================================================ +// Copyright (C) 2001-2020 by Jozef Starosczyk +// ixen {at} copyhandler [dot] com +// +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU Library General Public License +// (version 2) as published by the Free Software Foundation; +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU Library General Public +// License along with this program; if not, write to the +// Free Software Foundation, Inc., +// 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +// ============================================================================ +#pragma once + +#include "../libstring/TString.h" +#include "libchcore.h" + +namespace chcore +{ + class LIBCHCORE_API TStringPattern + { + public: + enum class EPatternType + { + eType_Wildcard + }; + + public: + explicit TStringPattern(EPatternType ePatternType = EPatternType::eType_Wildcard); + explicit TStringPattern(const string::TString& strPattern, EPatternType ePatternType = EPatternType::eType_Wildcard); + + void SetPattern(const string::TString& strPattern, EPatternType ePatternType = EPatternType::eType_Wildcard); + bool Matches(const string::TString& strTextToMatch) 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); + + void FromString(const string::TString& strPattern, EPatternType eDefaultPatternType = EPatternType::eType_Wildcard); + 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; + + private: + string::TString m_strPattern; + EPatternType m_ePatternType; + }; +} Index: src/libchcore/TStringPatternArray.cpp =================================================================== diff -u -N --- src/libchcore/TStringPatternArray.cpp (revision 0) +++ src/libchcore/TStringPatternArray.cpp (revision 22c7d5559ca17c9b1859d2283b667516b23ac597) @@ -0,0 +1,100 @@ +// ============================================================================ +// Copyright (C) 2001-2020 by Jozef Starosczyk +// ixen {at} copyhandler [dot] com +// +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU Library General Public License +// (version 2) as published by the Free Software Foundation; +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU Library General Public +// License along with this program; if not, write to the +// Free Software Foundation, Inc., +// 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +// ============================================================================ +#include "stdafx.h" +#include "TStringPatternArray.h" +#include "../libstring/TStringArray.h" + +using namespace string; + +namespace chcore +{ + bool TStringPatternArray::MatchesAny(const TString& strTextToMatch) const + { + for (const TStringPattern& pattern : m_vItems) + { + if (pattern.Matches(strTextToMatch)) + return true; + } + + return false; + } + + bool TStringPatternArray::MatchesAll(const TString& strTextToMatch) const + { + for (const TStringPattern& pattern : m_vItems) + { + if (!pattern.Matches(strTextToMatch)) + return false; + } + + return true; + } + + void TStringPatternArray::FromString(const TString& strPatterns, TStringPattern::EPatternType eDefaultPatternType) + { + TStringArray arrPatterns; + strPatterns.Split(_T("|"), arrPatterns); + FromStringArray(arrPatterns, eDefaultPatternType); + } + + void TStringPatternArray::FromSerializedStringArray(const TStringArray& arrSerializedPatterns) + { + m_vItems.clear(); + + for (size_t stIndex = 0; stIndex < arrSerializedPatterns.GetCount(); ++stIndex) + { + m_vItems.push_back(TStringPattern::CreateFromString(arrSerializedPatterns.GetAt(stIndex))); + } + } + + void TStringPatternArray::FromStringArray(const TStringArray& arrPatterns, TStringPattern::EPatternType eDefaultPatternType) + { + for (size_t stIndex = 0; stIndex < arrPatterns.GetCount(); ++stIndex) + { + Add(TStringPattern::CreateFromString(arrPatterns.GetAt(stIndex), eDefaultPatternType)); + } + } + + TString TStringPatternArray::ToString() const + { + TString strMask; + size_t stCount = GetCount(); + if (stCount > 0) + { + strMask = GetAt(0).ToString(); + for (size_t stIndex = 1; stIndex < stCount; stIndex++) + { + strMask += _T("|") + GetAt(stIndex).ToString(); + } + } + + return strMask; + } + + TStringArray TStringPatternArray::ToSerializedStringArray() const + { + TStringArray arrSerialized; + for (const TStringPattern& pattern : m_vItems) + { + arrSerialized.Add(pattern.ToString()); + } + + return arrSerialized; + } +} Index: src/libstring/TStringPatternArray.cpp =================================================================== diff -u -N --- src/libstring/TStringPatternArray.cpp (revision fadd6c9c628de875716d96c3a497b5bc6c8dca8a) +++ src/libstring/TStringPatternArray.cpp (revision 0) @@ -1,99 +0,0 @@ -// ============================================================================ -// Copyright (C) 2001-2015 by Jozef Starosczyk -// ixen@copyhandler.com -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU Library General Public License -// (version 2) as published by the Free Software Foundation; -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU Library General Public -// License along with this program; if not, write to the -// Free Software Foundation, Inc., -// 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -// ============================================================================ -#include "stdafx.h" -#include "TStringPatternArray.h" -#include "TStringArray.h" -#include "TStringException.h" - -namespace string -{ - bool TStringPatternArray::MatchesAny(const TString& strTextToMatch) const - { - for (const TStringPattern& pattern : m_vItems) - { - if (pattern.Matches(strTextToMatch)) - return true; - } - - return false; - } - - bool TStringPatternArray::MatchesAll(const TString& strTextToMatch) const - { - for (const TStringPattern& pattern : m_vItems) - { - if (!pattern.Matches(strTextToMatch)) - return false; - } - - return true; - } - - void TStringPatternArray::FromString(const TString& strPatterns, TStringPattern::EPatternType eDefaultPatternType) - { - TStringArray arrPatterns; - strPatterns.Split(_T("|"), arrPatterns); - FromStringArray(arrPatterns, eDefaultPatternType); - } - - void TStringPatternArray::FromSerializedStringArray(const TStringArray& arrSerializedPatterns) - { - m_vItems.clear(); - - for (size_t stIndex = 0; stIndex < arrSerializedPatterns.GetCount(); ++stIndex) - { - m_vItems.push_back(TStringPattern::CreateFromString(arrSerializedPatterns.GetAt(stIndex))); - } - } - - void TStringPatternArray::FromStringArray(const TStringArray& arrPatterns, TStringPattern::EPatternType eDefaultPatternType) - { - for (size_t stIndex = 0; stIndex < arrPatterns.GetCount(); ++stIndex) - { - Add(TStringPattern::CreateFromString(arrPatterns.GetAt(stIndex), eDefaultPatternType)); - } - } - - TString TStringPatternArray::ToString() const - { - TString strMask; - size_t stCount = GetCount(); - if (stCount > 0) - { - strMask = GetAt(0).ToString(); - for (size_t stIndex = 1; stIndex < stCount; stIndex++) - { - strMask += _T("|") + GetAt(stIndex).ToString(); - } - } - - return strMask; - } - - TStringArray TStringPatternArray::ToSerializedStringArray() const - { - TStringArray arrSerialized; - for (const TStringPattern& pattern : m_vItems) - { - arrSerialized.Add(pattern.ToString()); - } - - return arrSerialized; - } -} Index: src/libchcore/TStringPatternArray.h =================================================================== diff -u -N --- src/libchcore/TStringPatternArray.h (revision 0) +++ src/libchcore/TStringPatternArray.h (revision 22c7d5559ca17c9b1859d2283b667516b23ac597) @@ -0,0 +1,55 @@ +// ============================================================================ +// Copyright (C) 2001-2020 by Jozef Starosczyk +// ixen {at} copyhandler [dot] com +// +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU Library General Public License +// (version 2) as published by the Free Software Foundation; +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU Library General Public +// License along with this program; if not, write to the +// Free Software Foundation, Inc., +// 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +// ============================================================================ +#pragma once + +#include "TStringPattern.h" +#include "../common/GenericTemplates/RandomAccessIterators.h" +#include "../common/GenericTemplates/RandomAccessContainerWrapper.h" + +namespace chcore +{ + template class LIBCHCORE_API RandomAccessIteratorWrapper; + class LIBCHCORE_API TStringPatternArrayIterator : public RandomAccessIteratorWrapper + { + }; + + template class LIBCHCORE_API RandomAccessConstIteratorWrapper; + class LIBCHCORE_API TStringPatternArrayConstIterator : public RandomAccessConstIteratorWrapper + { + }; + + template class LIBCHCORE_API RandomAccessContainerWrapper; + + class LIBCHCORE_API TStringPatternArray : public RandomAccessContainerWrapper + { + public: + // pattern api + bool MatchesAny(const string::TString& strTextToMatch) const; + bool MatchesAll(const string::TString& strTextToMatch) const; + + // string parsing + void FromString(const string::TString& strPatterns, TStringPattern::EPatternType eDefaultPatternType = TStringPattern::EPatternType::eType_Wildcard); + void FromStringArray(const string::TStringArray& strPatterns, TStringPattern::EPatternType eDefaultPatternType = TStringPattern::EPatternType::eType_Wildcard); + string::TString ToString() const; + + // serialization + void FromSerializedStringArray(const string::TStringArray& arrSerializedPatterns); + string::TStringArray ToSerializedStringArray() const; + }; +} Index: src/libchcore/Tests/TestsTStringPattern.cpp =================================================================== diff -u -N --- src/libchcore/Tests/TestsTStringPattern.cpp (revision 0) +++ src/libchcore/Tests/TestsTStringPattern.cpp (revision 22c7d5559ca17c9b1859d2283b667516b23ac597) @@ -0,0 +1,114 @@ +#include "stdafx.h" +#include "gtest/gtest.h" +#include "gmock/gmock.h" +#include "../TStringPattern.h" + +using namespace chcore; + +TEST(TestsTStringPattern, DefaultConstruction) +{ + TStringPattern patternEmpty; + EXPECT_STREQ(L"", patternEmpty.ToString().c_str()); + EXPECT_STREQ(L"", patternEmpty.GetPattern().c_str()); + EXPECT_EQ(TStringPattern::EPatternType::eType_Wildcard, patternEmpty.GetPatternType()); +} + +TEST(TestsTStringPattern, PatternConstruction) +{ + TStringPattern patternEmpty(L"*.*", TStringPattern::EPatternType::eType_Wildcard); + EXPECT_STREQ(L"*.*", patternEmpty.ToString().c_str()); + EXPECT_STREQ(L"*.*", patternEmpty.GetPattern().c_str()); + EXPECT_EQ(TStringPattern::EPatternType::eType_Wildcard, patternEmpty.GetPatternType()); +} + +TEST(TestsTStringPattern, SetPattern) +{ + TStringPattern patternEmpty(L"*.*", TStringPattern::EPatternType::eType_Wildcard); + + patternEmpty.SetPattern(L"*.bat", TStringPattern::EPatternType::eType_Wildcard); + + EXPECT_STREQ(L"*.bat", patternEmpty.ToString().c_str()); + EXPECT_STREQ(L"*.bat", patternEmpty.GetPattern().c_str()); + EXPECT_EQ(TStringPattern::EPatternType::eType_Wildcard, patternEmpty.GetPatternType()); +} + +TEST(TestsTStringPattern, CreateFromSerializedString) +{ + TStringPattern patternEmpty = TStringPattern::CreateFromString(L"WC;*.*"); + + EXPECT_STREQ(L"*.*", patternEmpty.ToString().c_str()); + EXPECT_STREQ(L"*.*", patternEmpty.GetPattern().c_str()); + EXPECT_EQ(TStringPattern::EPatternType::eType_Wildcard, patternEmpty.GetPatternType()); +} + +TEST(TestsTStringPattern, FromStringString) +{ + TStringPattern patternEmpty; + patternEmpty.FromString(L"WC;*.*"); + + EXPECT_STREQ(L"*.*", patternEmpty.ToString().c_str()); + EXPECT_STREQ(L"*.*", patternEmpty.GetPattern().c_str()); + EXPECT_EQ(TStringPattern::EPatternType::eType_Wildcard, patternEmpty.GetPatternType()); +} + +TEST(TestsTStringPattern, Matches_Positive_StarDotBat) +{ + TStringPattern patternEmpty(L"*.bat", TStringPattern::EPatternType::eType_Wildcard); + + EXPECT_TRUE(patternEmpty.Matches(L"autorun.bat")); +} + +TEST(TestsTStringPattern, Matches_Negative_StarDotBat) +{ + TStringPattern patternEmpty(L"*.bat", TStringPattern::EPatternType::eType_Wildcard); + + EXPECT_FALSE(patternEmpty.Matches(L"autorun.batx")); +} + +TEST(TestsTStringPattern, Matches_Positive_StarDotStar) +{ + TStringPattern patternEmpty(L"*.*", TStringPattern::EPatternType::eType_Wildcard); + + EXPECT_TRUE(patternEmpty.Matches(L"autorun.bat")); +} + +TEST(TestsTStringPattern, Matches_Negative_StarDotStar) +{ + TStringPattern patternEmpty(L"*.*", TStringPattern::EPatternType::eType_Wildcard); + + EXPECT_FALSE(patternEmpty.Matches(L"autorun")); +} + +/////////////////////////////////////////////////////////// +// Multiple asterisks + +TEST(TestsTStringPattern, Matches_Positive_MultiStar) +{ + TStringPattern patternEmpty(L"ad*bo*", TStringPattern::EPatternType::eType_Wildcard); + + EXPECT_TRUE(patternEmpty.Matches(L"addon-boo.bat")); +} + +TEST(TestsTStringPattern, Matches_Negative_MultiStar) +{ + TStringPattern patternEmpty(L"ad*bo*", TStringPattern::EPatternType::eType_Wildcard); + + EXPECT_FALSE(patternEmpty.Matches(L"addon-doo.bat")); +} + +//////////////////////////////////////////////////////////// +// asterisks + +TEST(TestsTStringPattern, Matches_Positive_QuestionMultiPos) +{ + TStringPattern patternEmpty(L"a??b?r", TStringPattern::EPatternType::eType_Wildcard); + + EXPECT_TRUE(patternEmpty.Matches(L"arbbar")); +} + +TEST(TestsTStringPattern, Matches_Negative_QuestionMultiPos) +{ + TStringPattern patternEmpty(L"a??b?r", TStringPattern::EPatternType::eType_Wildcard); + + EXPECT_FALSE(patternEmpty.Matches(L"arbxar")); +} Index: src/libstring/Tests/TestsTStringPattern.cpp =================================================================== diff -u -N --- src/libstring/Tests/TestsTStringPattern.cpp (revision 0d5b67ee96b435d63f7bf075dc8e28603793b187) +++ src/libstring/Tests/TestsTStringPattern.cpp (revision 0) @@ -1,114 +0,0 @@ -#include "stdafx.h" -#include "gtest/gtest.h" -#include "gmock/gmock.h" -#include "../TStringPattern.h" - -using namespace string; - -TEST(TestsTStringPattern, DefaultConstruction) -{ - TStringPattern patternEmpty; - EXPECT_STREQ(L"", patternEmpty.ToString().c_str()); - EXPECT_STREQ(L"", patternEmpty.GetPattern().c_str()); - EXPECT_EQ(TStringPattern::EPatternType::eType_Wildcard, patternEmpty.GetPatternType()); -} - -TEST(TestsTStringPattern, PatternConstruction) -{ - TStringPattern patternEmpty(L"*.*", TStringPattern::EPatternType::eType_Wildcard); - EXPECT_STREQ(L"*.*", patternEmpty.ToString().c_str()); - EXPECT_STREQ(L"*.*", patternEmpty.GetPattern().c_str()); - EXPECT_EQ(TStringPattern::EPatternType::eType_Wildcard, patternEmpty.GetPatternType()); -} - -TEST(TestsTStringPattern, SetPattern) -{ - TStringPattern patternEmpty(L"*.*", TStringPattern::EPatternType::eType_Wildcard); - - patternEmpty.SetPattern(L"*.bat", TStringPattern::EPatternType::eType_Wildcard); - - EXPECT_STREQ(L"*.bat", patternEmpty.ToString().c_str()); - EXPECT_STREQ(L"*.bat", patternEmpty.GetPattern().c_str()); - EXPECT_EQ(TStringPattern::EPatternType::eType_Wildcard, patternEmpty.GetPatternType()); -} - -TEST(TestsTStringPattern, CreateFromSerializedString) -{ - TStringPattern patternEmpty = TStringPattern::CreateFromString(L"WC;*.*"); - - EXPECT_STREQ(L"*.*", patternEmpty.ToString().c_str()); - EXPECT_STREQ(L"*.*", patternEmpty.GetPattern().c_str()); - EXPECT_EQ(TStringPattern::EPatternType::eType_Wildcard, patternEmpty.GetPatternType()); -} - -TEST(TestsTStringPattern, FromStringString) -{ - TStringPattern patternEmpty; - patternEmpty.FromString(L"WC;*.*"); - - EXPECT_STREQ(L"*.*", patternEmpty.ToString().c_str()); - EXPECT_STREQ(L"*.*", patternEmpty.GetPattern().c_str()); - EXPECT_EQ(TStringPattern::EPatternType::eType_Wildcard, patternEmpty.GetPatternType()); -} - -TEST(TestsTStringPattern, Matches_Positive_StarDotBat) -{ - TStringPattern patternEmpty(L"*.bat", TStringPattern::EPatternType::eType_Wildcard); - - EXPECT_TRUE(patternEmpty.Matches(L"autorun.bat")); -} - -TEST(TestsTStringPattern, Matches_Negative_StarDotBat) -{ - TStringPattern patternEmpty(L"*.bat", TStringPattern::EPatternType::eType_Wildcard); - - EXPECT_FALSE(patternEmpty.Matches(L"autorun.batx")); -} - -TEST(TestsTStringPattern, Matches_Positive_StarDotStar) -{ - TStringPattern patternEmpty(L"*.*", TStringPattern::EPatternType::eType_Wildcard); - - EXPECT_TRUE(patternEmpty.Matches(L"autorun.bat")); -} - -TEST(TestsTStringPattern, Matches_Negative_StarDotStar) -{ - TStringPattern patternEmpty(L"*.*", TStringPattern::EPatternType::eType_Wildcard); - - EXPECT_FALSE(patternEmpty.Matches(L"autorun")); -} - -/////////////////////////////////////////////////////////// -// Multiple asterisks - -TEST(TestsTStringPattern, Matches_Positive_MultiStar) -{ - TStringPattern patternEmpty(L"ad*bo*", TStringPattern::EPatternType::eType_Wildcard); - - EXPECT_TRUE(patternEmpty.Matches(L"addon-boo.bat")); -} - -TEST(TestsTStringPattern, Matches_Negative_MultiStar) -{ - TStringPattern patternEmpty(L"ad*bo*", TStringPattern::EPatternType::eType_Wildcard); - - EXPECT_FALSE(patternEmpty.Matches(L"addon-doo.bat")); -} - -//////////////////////////////////////////////////////////// -// asterisks - -TEST(TestsTStringPattern, Matches_Positive_QuestionMultiPos) -{ - TStringPattern patternEmpty(L"a??b?r", TStringPattern::EPatternType::eType_Wildcard); - - EXPECT_TRUE(patternEmpty.Matches(L"arbbar")); -} - -TEST(TestsTStringPattern, Matches_Negative_QuestionMultiPos) -{ - TStringPattern patternEmpty(L"a??b?r", TStringPattern::EPatternType::eType_Wildcard); - - EXPECT_FALSE(patternEmpty.Matches(L"arbxar")); -} Index: src/libchcore/Tests/TestsTStringPatternArray.cpp =================================================================== diff -u -N --- src/libchcore/Tests/TestsTStringPatternArray.cpp (revision 0) +++ src/libchcore/Tests/TestsTStringPatternArray.cpp (revision 22c7d5559ca17c9b1859d2283b667516b23ac597) @@ -0,0 +1,150 @@ +#include "stdafx.h" +#include "gtest/gtest.h" +#include "gmock/gmock.h" +#include "../TStringPatternArray.h" +#include "../../libstring/TStringArray.h" + +using namespace string; +using namespace chcore; + +TEST(TestsTStringPatternArray, DefaultConstruction) +{ + TStringPatternArray arrPatterns; + + EXPECT_EQ(0UL, arrPatterns.GetCount()); +} + +TEST(TestsTStringPatternArray, AddElements) +{ + TStringPatternArray arrPatterns; + + arrPatterns.Add(TStringPattern(L"*.bat", TStringPattern::EPatternType::eType_Wildcard)); + arrPatterns.Add(TStringPattern(L"*.exe", TStringPattern::EPatternType::eType_Wildcard)); + + EXPECT_EQ(2UL, arrPatterns.GetCount()); + EXPECT_STREQ(L"*.bat", arrPatterns.GetAt(0).ToString().c_str()); + EXPECT_STREQ(L"*.exe", arrPatterns.GetAt(1).ToString().c_str()); +} + +TEST(TestsTStringPatternArray, InsertAt) +{ + TStringPatternArray arrPatterns; + + arrPatterns.InsertAt(0, TStringPattern(L"*.bat", TStringPattern::EPatternType::eType_Wildcard)); + arrPatterns.InsertAt(0, TStringPattern(L"*.exe", TStringPattern::EPatternType::eType_Wildcard)); + + EXPECT_EQ(2UL, arrPatterns.GetCount()); + EXPECT_STREQ(L"*.bat", arrPatterns.GetAt(1).ToString().c_str()); + EXPECT_STREQ(L"*.exe", arrPatterns.GetAt(0).ToString().c_str()); +} + +TEST(TestsTStringPatternArray, SetAt) +{ + TStringPatternArray arrPatterns; + + arrPatterns.Add(TStringPattern(L"*.bat", TStringPattern::EPatternType::eType_Wildcard)); + arrPatterns.Add(TStringPattern(L"*.exe", TStringPattern::EPatternType::eType_Wildcard)); + + arrPatterns.SetAt(0, TStringPattern(L"*.com", TStringPattern::EPatternType::eType_Wildcard)); + + EXPECT_EQ(2UL, arrPatterns.GetCount()); + EXPECT_STREQ(L"*.com", arrPatterns.GetAt(0).ToString().c_str()); + EXPECT_STREQ(L"*.exe", arrPatterns.GetAt(1).ToString().c_str()); +} + +TEST(TestsTStringPatternArray, RemoveAt) +{ + TStringPatternArray arrPatterns; + + arrPatterns.Add(TStringPattern(L"*.bat", TStringPattern::EPatternType::eType_Wildcard)); + arrPatterns.Add(TStringPattern(L"*.exe", TStringPattern::EPatternType::eType_Wildcard)); + + arrPatterns.RemoveAt(0); + + EXPECT_EQ(1UL, arrPatterns.GetCount()); + EXPECT_STREQ(L"*.exe", arrPatterns.GetAt(0).ToString().c_str()); +} + +TEST(TestsTStringPatternArray, Clear) +{ + TStringPatternArray arrPatterns; + + arrPatterns.Add(TStringPattern(L"*.bat", TStringPattern::EPatternType::eType_Wildcard)); + arrPatterns.Add(TStringPattern(L"*.exe", TStringPattern::EPatternType::eType_Wildcard)); + + arrPatterns.Clear(); + + EXPECT_EQ(0UL, arrPatterns.GetCount()); +} + +///////////////////////////////////////////////// +// matches any +TEST(TestsTStringPatternArray, MatchesAny_Positive) +{ + TStringPatternArray arrPatterns; + + arrPatterns.Add(TStringPattern(L"*.bat", TStringPattern::EPatternType::eType_Wildcard)); + arrPatterns.Add(TStringPattern(L"*.exe", TStringPattern::EPatternType::eType_Wildcard)); + + EXPECT_TRUE(arrPatterns.MatchesAny(L"autostart.bat")); +} + +TEST(TestsTStringPatternArray, MatchesAny_Negative) +{ + TStringPatternArray arrPatterns; + + arrPatterns.Add(TStringPattern(L"*.bat", TStringPattern::EPatternType::eType_Wildcard)); + arrPatterns.Add(TStringPattern(L"*.exe", TStringPattern::EPatternType::eType_Wildcard)); + + EXPECT_FALSE(arrPatterns.MatchesAny(L"autostart.com")); +} + +///////////////////////////////////////////////// +// matches all +TEST(TestsTStringPatternArray, MatchesAll_Positive) +{ + TStringPatternArray arrPatterns; + + arrPatterns.Add(TStringPattern(L"*.bat", TStringPattern::EPatternType::eType_Wildcard)); + arrPatterns.Add(TStringPattern(L"autostart.*", TStringPattern::EPatternType::eType_Wildcard)); + + EXPECT_TRUE(arrPatterns.MatchesAll(L"autostart.bat")); +} + +TEST(TestsTStringPatternArray, MatchesAll_Negative) +{ + TStringPatternArray arrPatterns; + + arrPatterns.Add(TStringPattern(L"*.bat", TStringPattern::EPatternType::eType_Wildcard)); + arrPatterns.Add(TStringPattern(L"autostart.*", TStringPattern::EPatternType::eType_Wildcard)); + + EXPECT_FALSE(arrPatterns.MatchesAll(L"autostart.exe")); +} + +///////////////////////////////////////////////// +// serialization +TEST(TestsTStringPatternArray, ToStringArray) +{ + TStringPatternArray arrPatterns; + + arrPatterns.Add(TStringPattern(L"*.bat", TStringPattern::EPatternType::eType_Wildcard)); + arrPatterns.Add(TStringPattern(L"autostart.*", TStringPattern::EPatternType::eType_Wildcard)); + + TStringArray arrElements = arrPatterns.ToSerializedStringArray(); + EXPECT_EQ(2UL, arrElements.GetCount()); + EXPECT_STREQ(L"*.bat", arrElements.GetAt(0).c_str()); + EXPECT_STREQ(L"autostart.*", arrElements.GetAt(1).c_str()); +} + +TEST(TestsTStringPatternArray, FromStringArray) +{ + TStringArray arrElements; + arrElements.Add(L"*.bat"); + arrElements.Add(L"autostart.*"); + + TStringPatternArray arrPatterns; + arrPatterns.FromStringArray(arrElements); + + EXPECT_STREQ(L"*.bat", arrPatterns.GetAt(0).ToString().c_str()); + EXPECT_STREQ(L"autostart.*", arrPatterns.GetAt(1).ToString().c_str()); +} Index: src/libstring/Tests/TestsTStringPatternArray.cpp =================================================================== diff -u -N --- src/libstring/Tests/TestsTStringPatternArray.cpp (revision 07f5ed57f11f0b908313f692fc4830401f0db552) +++ src/libstring/Tests/TestsTStringPatternArray.cpp (revision 0) @@ -1,149 +0,0 @@ -#include "stdafx.h" -#include "gtest/gtest.h" -#include "gmock/gmock.h" -#include "../TStringPatternArray.h" -#include "../TStringArray.h" - -using namespace string; - -TEST(TestsTStringPatternArray, DefaultConstruction) -{ - TStringPatternArray arrPatterns; - - EXPECT_EQ(0UL, arrPatterns.GetCount()); -} - -TEST(TestsTStringPatternArray, AddElements) -{ - TStringPatternArray arrPatterns; - - arrPatterns.Add(TStringPattern(L"*.bat", TStringPattern::EPatternType::eType_Wildcard)); - arrPatterns.Add(TStringPattern(L"*.exe", TStringPattern::EPatternType::eType_Wildcard)); - - EXPECT_EQ(2UL, arrPatterns.GetCount()); - EXPECT_STREQ(L"*.bat", arrPatterns.GetAt(0).ToString().c_str()); - EXPECT_STREQ(L"*.exe", arrPatterns.GetAt(1).ToString().c_str()); -} - -TEST(TestsTStringPatternArray, InsertAt) -{ - TStringPatternArray arrPatterns; - - arrPatterns.InsertAt(0, TStringPattern(L"*.bat", TStringPattern::EPatternType::eType_Wildcard)); - arrPatterns.InsertAt(0, TStringPattern(L"*.exe", TStringPattern::EPatternType::eType_Wildcard)); - - EXPECT_EQ(2UL, arrPatterns.GetCount()); - EXPECT_STREQ(L"*.bat", arrPatterns.GetAt(1).ToString().c_str()); - EXPECT_STREQ(L"*.exe", arrPatterns.GetAt(0).ToString().c_str()); -} - -TEST(TestsTStringPatternArray, SetAt) -{ - TStringPatternArray arrPatterns; - - arrPatterns.Add(TStringPattern(L"*.bat", TStringPattern::EPatternType::eType_Wildcard)); - arrPatterns.Add(TStringPattern(L"*.exe", TStringPattern::EPatternType::eType_Wildcard)); - - arrPatterns.SetAt(0, TStringPattern(L"*.com", TStringPattern::EPatternType::eType_Wildcard)); - - EXPECT_EQ(2UL, arrPatterns.GetCount()); - EXPECT_STREQ(L"*.com", arrPatterns.GetAt(0).ToString().c_str()); - EXPECT_STREQ(L"*.exe", arrPatterns.GetAt(1).ToString().c_str()); -} - -TEST(TestsTStringPatternArray, RemoveAt) -{ - TStringPatternArray arrPatterns; - - arrPatterns.Add(TStringPattern(L"*.bat", TStringPattern::EPatternType::eType_Wildcard)); - arrPatterns.Add(TStringPattern(L"*.exe", TStringPattern::EPatternType::eType_Wildcard)); - - arrPatterns.RemoveAt(0); - - EXPECT_EQ(1UL, arrPatterns.GetCount()); - EXPECT_STREQ(L"*.exe", arrPatterns.GetAt(0).ToString().c_str()); -} - -TEST(TestsTStringPatternArray, Clear) -{ - TStringPatternArray arrPatterns; - - arrPatterns.Add(TStringPattern(L"*.bat", TStringPattern::EPatternType::eType_Wildcard)); - arrPatterns.Add(TStringPattern(L"*.exe", TStringPattern::EPatternType::eType_Wildcard)); - - arrPatterns.Clear(); - - EXPECT_EQ(0UL, arrPatterns.GetCount()); -} - -///////////////////////////////////////////////// -// matches any -TEST(TestsTStringPatternArray, MatchesAny_Positive) -{ - TStringPatternArray arrPatterns; - - arrPatterns.Add(TStringPattern(L"*.bat", TStringPattern::EPatternType::eType_Wildcard)); - arrPatterns.Add(TStringPattern(L"*.exe", TStringPattern::EPatternType::eType_Wildcard)); - - EXPECT_TRUE(arrPatterns.MatchesAny(L"autostart.bat")); -} - -TEST(TestsTStringPatternArray, MatchesAny_Negative) -{ - TStringPatternArray arrPatterns; - - arrPatterns.Add(TStringPattern(L"*.bat", TStringPattern::EPatternType::eType_Wildcard)); - arrPatterns.Add(TStringPattern(L"*.exe", TStringPattern::EPatternType::eType_Wildcard)); - - EXPECT_FALSE(arrPatterns.MatchesAny(L"autostart.com")); -} - -///////////////////////////////////////////////// -// matches all -TEST(TestsTStringPatternArray, MatchesAll_Positive) -{ - TStringPatternArray arrPatterns; - - arrPatterns.Add(TStringPattern(L"*.bat", TStringPattern::EPatternType::eType_Wildcard)); - arrPatterns.Add(TStringPattern(L"autostart.*", TStringPattern::EPatternType::eType_Wildcard)); - - EXPECT_TRUE(arrPatterns.MatchesAll(L"autostart.bat")); -} - -TEST(TestsTStringPatternArray, MatchesAll_Negative) -{ - TStringPatternArray arrPatterns; - - arrPatterns.Add(TStringPattern(L"*.bat", TStringPattern::EPatternType::eType_Wildcard)); - arrPatterns.Add(TStringPattern(L"autostart.*", TStringPattern::EPatternType::eType_Wildcard)); - - EXPECT_FALSE(arrPatterns.MatchesAll(L"autostart.exe")); -} - -///////////////////////////////////////////////// -// serialization -TEST(TestsTStringPatternArray, ToStringArray) -{ - TStringPatternArray arrPatterns; - - arrPatterns.Add(TStringPattern(L"*.bat", TStringPattern::EPatternType::eType_Wildcard)); - arrPatterns.Add(TStringPattern(L"autostart.*", TStringPattern::EPatternType::eType_Wildcard)); - - TStringArray arrElements = arrPatterns.ToSerializedStringArray(); - EXPECT_EQ(2UL, arrElements.GetCount()); - EXPECT_STREQ(L"*.bat", arrElements.GetAt(0).c_str()); - EXPECT_STREQ(L"autostart.*", arrElements.GetAt(1).c_str()); -} - -TEST(TestsTStringPatternArray, FromStringArray) -{ - TStringArray arrElements; - arrElements.Add(L"*.bat"); - arrElements.Add(L"autostart.*"); - - TStringPatternArray arrPatterns; - arrPatterns.FromStringArray(arrElements); - - EXPECT_STREQ(L"*.bat", arrPatterns.GetAt(0).ToString().c_str()); - EXPECT_STREQ(L"autostart.*", arrPatterns.GetAt(1).ToString().c_str()); -} Index: src/libchcore/libchcore.vc140.vcxproj =================================================================== diff -u -N -r2dea2d82eb5c11d9e92d42e47f876e58c4505c4b -r22c7d5559ca17c9b1859d2283b667516b23ac597 --- src/libchcore/libchcore.vc140.vcxproj (.../libchcore.vc140.vcxproj) (revision 2dea2d82eb5c11d9e92d42e47f876e58c4505c4b) +++ src/libchcore/libchcore.vc140.vcxproj (.../libchcore.vc140.vcxproj) (revision 22c7d5559ca17c9b1859d2283b667516b23ac597) @@ -519,6 +519,8 @@ + + @@ -591,6 +593,18 @@ true true + + true + true + true + true + + + true + true + true + true + true true @@ -611,6 +625,8 @@ + + Index: src/libchcore/libchcore.vc140.vcxproj.filters =================================================================== diff -u -N -r301444777085263aae7aff911dd56722f302597e -r22c7d5559ca17c9b1859d2283b667516b23ac597 --- src/libchcore/libchcore.vc140.vcxproj.filters (.../libchcore.vc140.vcxproj.filters) (revision 301444777085263aae7aff911dd56722f302597e) +++ src/libchcore/libchcore.vc140.vcxproj.filters (.../libchcore.vc140.vcxproj.filters) (revision 22c7d5559ca17c9b1859d2283b667516b23ac597) @@ -105,6 +105,12 @@ Tests + + Source Files\Tools + + + Source Files\Tools + @@ -188,6 +194,18 @@ Tests + + Source Files\Tools + + + Source Files\Tools + + + Tests + + + Tests + Index: src/libchengine/FeedbackAlreadyExistsRule.cpp =================================================================== diff -u -N -rf8b6de9c28b2957db0b4e71efa11df8632e41261 -r22c7d5559ca17c9b1859d2283b667516b23ac597 --- src/libchengine/FeedbackAlreadyExistsRule.cpp (.../FeedbackAlreadyExistsRule.cpp) (revision f8b6de9c28b2957db0b4e71efa11df8632e41261) +++ src/libchengine/FeedbackAlreadyExistsRule.cpp (.../FeedbackAlreadyExistsRule.cpp) (revision 22c7d5559ca17c9b1859d2283b667516b23ac597) @@ -5,6 +5,7 @@ using namespace serializer; using namespace string; +using namespace chcore; namespace chengine { Index: src/libchengine/FeedbackAlreadyExistsRule.h =================================================================== diff -u -N -rf8b6de9c28b2957db0b4e71efa11df8632e41261 -r22c7d5559ca17c9b1859d2283b667516b23ac597 --- src/libchengine/FeedbackAlreadyExistsRule.h (.../FeedbackAlreadyExistsRule.h) (revision f8b6de9c28b2957db0b4e71efa11df8632e41261) +++ src/libchengine/FeedbackAlreadyExistsRule.h (.../FeedbackAlreadyExistsRule.h) (revision 22c7d5559ca17c9b1859d2283b667516b23ac597) @@ -2,7 +2,7 @@ #include "libchengine.h" #include "../libserializer/SerializableObject.h" -#include "../libstring/TStringPatternArray.h" +#include "../libchcore/TStringPatternArray.h" #include "ECompareType.h" #include "EFeedbackResult.h" #include "../libserializer/SerializerDataTypes.h" @@ -89,9 +89,9 @@ private: serializer::TSharedModificationTracker m_bUseMask; - serializer::TSharedModificationTracker m_spaMask; + serializer::TSharedModificationTracker m_spaMask; serializer::TSharedModificationTracker m_bUseExcludeMask; - serializer::TSharedModificationTracker m_spaExcludeMask; + serializer::TSharedModificationTracker m_spaExcludeMask; serializer::TSharedModificationTracker m_bUseDateCompare; serializer::TSharedModificationTracker m_cmpLastModified; Index: src/libchengine/FeedbackErrorRule.h =================================================================== diff -u -N -rf8b6de9c28b2957db0b4e71efa11df8632e41261 -r22c7d5559ca17c9b1859d2283b667516b23ac597 --- src/libchengine/FeedbackErrorRule.h (.../FeedbackErrorRule.h) (revision f8b6de9c28b2957db0b4e71efa11df8632e41261) +++ src/libchengine/FeedbackErrorRule.h (.../FeedbackErrorRule.h) (revision 22c7d5559ca17c9b1859d2283b667516b23ac597) @@ -2,7 +2,7 @@ #include "libchengine.h" #include "../libserializer/SerializableObject.h" -#include "../libstring/TStringPatternArray.h" +#include "../libchcore/TStringPatternArray.h" #include "ECompareType.h" #include "EFeedbackResult.h" #include "../libserializer/SerializerDataTypes.h" @@ -88,9 +88,9 @@ private: serializer::TSharedModificationTracker m_bUseMask; - serializer::TSharedModificationTracker m_spaMask; + serializer::TSharedModificationTracker m_spaMask; serializer::TSharedModificationTracker m_bUseExcludeMask; - serializer::TSharedModificationTracker m_spaExcludeMask; + serializer::TSharedModificationTracker m_spaExcludeMask; serializer::TSharedModificationTracker m_bUseErrorType; serializer::TSharedModificationTracker m_eErrorType; Index: src/libchengine/FeedbackNotEnoughSpaceRule.h =================================================================== diff -u -N -re6f64ea0eecaf86dfa1a42c80604d227b69be768 -r22c7d5559ca17c9b1859d2283b667516b23ac597 --- src/libchengine/FeedbackNotEnoughSpaceRule.h (.../FeedbackNotEnoughSpaceRule.h) (revision e6f64ea0eecaf86dfa1a42c80604d227b69be768) +++ src/libchengine/FeedbackNotEnoughSpaceRule.h (.../FeedbackNotEnoughSpaceRule.h) (revision 22c7d5559ca17c9b1859d2283b667516b23ac597) @@ -2,7 +2,7 @@ #include "libchengine.h" #include "../libserializer/SerializableObject.h" -#include "../libstring/TStringPatternArray.h" +#include "../libchcore/TStringPatternArray.h" #include "ECompareType.h" #include "EFeedbackResult.h" #include "../libserializer/SerializerDataTypes.h" @@ -74,9 +74,9 @@ private: serializer::TSharedModificationTracker m_bUseMask; - serializer::TSharedModificationTracker m_spaMask; + serializer::TSharedModificationTracker m_spaMask; serializer::TSharedModificationTracker m_bUseExcludeMask; - serializer::TSharedModificationTracker m_spaExcludeMask; + serializer::TSharedModificationTracker m_spaExcludeMask; serializer::TSharedModificationTracker m_eResult; }; Index: src/libchengine/FeedbackOperationEventRule.h =================================================================== diff -u -N -rf8b6de9c28b2957db0b4e71efa11df8632e41261 -r22c7d5559ca17c9b1859d2283b667516b23ac597 --- src/libchengine/FeedbackOperationEventRule.h (.../FeedbackOperationEventRule.h) (revision f8b6de9c28b2957db0b4e71efa11df8632e41261) +++ src/libchengine/FeedbackOperationEventRule.h (.../FeedbackOperationEventRule.h) (revision 22c7d5559ca17c9b1859d2283b667516b23ac597) @@ -2,7 +2,7 @@ #include "libchengine.h" #include "../libserializer/SerializableObject.h" -#include "../libstring/TStringPatternArray.h" +#include "../libchcore/TStringPatternArray.h" #include "ECompareType.h" #include "EFeedbackResult.h" #include "../libserializer/SerializerDataTypes.h" Index: src/libchengine/TFileFilter.cpp =================================================================== diff -u -N -rf8b6de9c28b2957db0b4e71efa11df8632e41261 -r22c7d5559ca17c9b1859d2283b667516b23ac597 --- src/libchengine/TFileFilter.cpp (.../TFileFilter.cpp) (revision f8b6de9c28b2957db0b4e71efa11df8632e41261) +++ src/libchengine/TFileFilter.cpp (.../TFileFilter.cpp) (revision 22c7d5559ca17c9b1859d2283b667516b23ac597) @@ -1,21 +1,21 @@ -/*************************************************************************** -* Copyright (C) 2001-2008 by Jozef Starosczyk * -* ixen@copyhandler.com * -* * -* This program is free software; you can redistribute it and/or modify * -* it under the terms of the GNU Library General Public License * -* (version 2) as published by the Free Software Foundation; * -* * -* This program is distributed in the hope that it will be useful, * -* but WITHOUT ANY WARRANTY; without even the implied warranty of * -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * -* GNU General Public License for more details. * -* * -* You should have received a copy of the GNU Library General Public * -* License along with this program; if not, write to the * -* Free Software Foundation, Inc., * -* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * -***************************************************************************/ +// ============================================================================ +// Copyright (C) 2001-2020 by Jozef Starosczyk +// ixen {at} copyhandler [dot] com +// +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU Library General Public License +// (version 2) as published by the Free Software Foundation; +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU Library General Public +// License along with this program; if not, write to the +// Free Software Foundation, Inc., +// 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +// ============================================================================ #include "stdafx.h" #include "TFileFilter.h" #include "TFileInfo.h" Index: src/libchengine/TFileFilter.h =================================================================== diff -u -N -rf8b6de9c28b2957db0b4e71efa11df8632e41261 -r22c7d5559ca17c9b1859d2283b667516b23ac597 --- src/libchengine/TFileFilter.h (.../TFileFilter.h) (revision f8b6de9c28b2957db0b4e71efa11df8632e41261) +++ src/libchengine/TFileFilter.h (.../TFileFilter.h) (revision 22c7d5559ca17c9b1859d2283b667516b23ac597) @@ -1,28 +1,27 @@ -/*************************************************************************** - * Copyright (C) 2001-2008 by Jozef Starosczyk * - * ixen@copyhandler.com * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU Library General Public License * - * (version 2) as published by the Free Software Foundation; * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License for more details. * - * * - * You should have received a copy of the GNU Library General Public * - * License along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ -#ifndef __TFILEFILTER_H__ -#define __TFILEFILTER_H__ +// ============================================================================ +// Copyright (C) 2001-2020 by Jozef Starosczyk +// ixen {at} copyhandler [dot] com +// +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU Library General Public License +// (version 2) as published by the Free Software Foundation; +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU Library General Public +// License along with this program; if not, write to the +// Free Software Foundation, Inc., +// 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +// ============================================================================ +#pragma once #include #include "TDateTime.h" #include -#include "../libstring/TStringPatternArray.h" +#include "../libchcore/TStringPatternArray.h" #include "../libserializer/TSharedModificationTracker.h" #include "ECompareType.h" #include "../libserializer/SerializableObject.h" @@ -199,11 +198,11 @@ // files mask serializer::TSharedModificationTracker m_bUseMask; - serializer::TSharedModificationTracker m_astrMask; + serializer::TSharedModificationTracker m_astrMask; // files mask- serializer::TSharedModificationTracker m_bUseExcludeMask; - serializer::TSharedModificationTracker m_astrExcludeMask; + serializer::TSharedModificationTracker m_astrExcludeMask; // size filtering serializer::TSharedModificationTracker m_bUseSize1; @@ -241,5 +240,3 @@ }; #pragma warning(pop) } - -#endif Index: src/libstring/libstring.vcxproj =================================================================== diff -u -N -r2dea2d82eb5c11d9e92d42e47f876e58c4505c4b -r22c7d5559ca17c9b1859d2283b667516b23ac597 --- src/libstring/libstring.vcxproj (.../libstring.vcxproj) (revision 2dea2d82eb5c11d9e92d42e47f876e58c4505c4b) +++ src/libstring/libstring.vcxproj (.../libstring.vcxproj) (revision 22c7d5559ca17c9b1859d2283b667516b23ac597) @@ -501,8 +501,6 @@ - - @@ -536,27 +534,13 @@ true true - - true - true - true - true - - - true - true - true - true - true true true true - - Index: src/libstring/libstring.vcxproj.filters =================================================================== diff -u -N -rfadd6c9c628de875716d96c3a497b5bc6c8dca8a -r22c7d5559ca17c9b1859d2283b667516b23ac597 --- src/libstring/libstring.vcxproj.filters (.../libstring.vcxproj.filters) (revision fadd6c9c628de875716d96c3a497b5bc6c8dca8a) +++ src/libstring/libstring.vcxproj.filters (.../libstring.vcxproj.filters) (revision 22c7d5559ca17c9b1859d2283b667516b23ac597) @@ -38,12 +38,6 @@ Source Files\Tools - - Source Files\Tools - - - Source Files\Tools - @@ -71,18 +65,6 @@ Tests - - Source Files\Tools - - - Source Files\Tools - - - Tests - - - Tests - Tests