From cfb752ad575d33e0899509c8053825bcc64503ab Mon Sep 17 00:00:00 2001 From: visuve Date: Tue, 7 May 2024 23:25:38 +0300 Subject: [PATCH] Fix unintentionally commited TextReplacer - There is still to consider whether to use uregex_replaceAll or a direct approach based on the file offsets - Both have their pros and cons --- PystykorvaLib/Pystykorva.cpp | 17 +++++++++++++++++ PystykorvaLib/Pystykorva.hpp | 1 + PystykorvaLib/PystykorvaLib.vcxproj | 2 ++ PystykorvaLib/TextReplacer.cpp | 18 ++++++++++++++++-- PystykorvaLib/TextSearcher.cpp | 19 +------------------ 5 files changed, 37 insertions(+), 20 deletions(-) diff --git a/PystykorvaLib/Pystykorva.cpp b/PystykorvaLib/Pystykorva.cpp index ee295ae..6172f33 100644 --- a/PystykorvaLib/Pystykorva.cpp +++ b/PystykorvaLib/Pystykorva.cpp @@ -130,6 +130,23 @@ std::string Pystykorva::StatusMaskToString(uint32_t statusMask) return result; } +int32_t Pystykorva::ModeToRegexFlags(Pystykorva::MatchMode mode) +{ + switch (mode) + { + case Pystykorva::PlainCaseSensitive: + return UREGEX_LITERAL; + case Pystykorva::PlainCaseInsensitive: + return UREGEX_CASE_INSENSITIVE | UREGEX_LITERAL; + case Pystykorva::RegexCaseSensitive: + return 0; + case Pystykorva::RegexCaseInsensitive: + return UREGEX_CASE_INSENSITIVE; + } + + throw std::invalid_argument("Unknown mode"); +} + bool Pystykorva::IsExcludedDirectory(const std::filesystem::path& path) const { return std::any_of( diff --git a/PystykorvaLib/Pystykorva.hpp b/PystykorvaLib/Pystykorva.hpp index 4e5b7d3..45e41d1 100644 --- a/PystykorvaLib/Pystykorva.hpp +++ b/PystykorvaLib/Pystykorva.hpp @@ -144,6 +144,7 @@ class Pystykorva void Stop(); static std::string StatusMaskToString(uint32_t); + static int32_t ModeToRegexFlags(Pystykorva::MatchMode); private: bool IsExcludedDirectory(const std::filesystem::path&) const; diff --git a/PystykorvaLib/PystykorvaLib.vcxproj b/PystykorvaLib/PystykorvaLib.vcxproj index dd6f8d0..3079f29 100644 --- a/PystykorvaLib/PystykorvaLib.vcxproj +++ b/PystykorvaLib/PystykorvaLib.vcxproj @@ -20,6 +20,7 @@ Create + @@ -32,6 +33,7 @@ + diff --git a/PystykorvaLib/TextReplacer.cpp b/PystykorvaLib/TextReplacer.cpp index d92c8d8..e6f190e 100644 --- a/PystykorvaLib/TextReplacer.cpp +++ b/PystykorvaLib/TextReplacer.cpp @@ -1,7 +1,21 @@ #include "PystykorvaLib.pch" #include "TextReplacer.hpp" -TextReplacer::TextReplacer() +class TextReplacerImpl +{ +public: + TextReplacerImpl() + { + // TODO! + } + + ~TextReplacerImpl() + { + } +}; + +TextReplacer::TextReplacer() : + _impl(new TextReplacerImpl()) { } @@ -10,6 +24,6 @@ TextReplacer::~TextReplacer() } -void TextReplacer::ReplaceAll(Pystykorva::IFile&, Pystykorva::Match&, std::string_view ) +void TextReplacer::ReplaceAll(Pystykorva::IFile&, Pystykorva::Match&, std::string_view) { } diff --git a/PystykorvaLib/TextSearcher.cpp b/PystykorvaLib/TextSearcher.cpp index fc0327e..250c2fd 100644 --- a/PystykorvaLib/TextSearcher.cpp +++ b/PystykorvaLib/TextSearcher.cpp @@ -2,23 +2,6 @@ #include "TextSearcher.hpp" #include "UnicodeConverter.hpp" -constexpr int32_t ModeToFlags(Pystykorva::MatchMode mode) -{ - switch (mode) - { - case Pystykorva::PlainCaseSensitive: - return UREGEX_LITERAL; - case Pystykorva::PlainCaseInsensitive: - return UREGEX_CASE_INSENSITIVE | UREGEX_LITERAL; - case Pystykorva::RegexCaseSensitive: - return 0; - case Pystykorva::RegexCaseInsensitive: - return UREGEX_CASE_INSENSITIVE; - } - - throw std::invalid_argument("Unknown mode"); -} - class TextSearcherImpl { public: @@ -29,7 +12,7 @@ class TextSearcherImpl _regex = uregex_open( expression.data(), static_cast(expression.size()), - ModeToFlags(mode), + Pystykorva::ModeToRegexFlags(mode), &error, &_status);