[FarGroup/FarManager] master: Fix 6030.1 (46356405a)

0 views
Skip to first unread message

farg...@farmanager.com

unread,
Oct 5, 2022, 12:30:51 PM10/5/22
to farco...@googlegroups.com
Repository : https://github.com/FarGroup/FarManager
On branch : master
Link : https://github.com/FarGroup/FarManager/commit/46356405afc65300ba80e2b90bcfa705ec655a6c

>---------------------------------------------------------------

commit 46356405afc65300ba80e2b90bcfa705ec655a6c
Author: Alex Alabuzhev <alab...@gmail.com>
Date: Wed Oct 5 17:15:59 2022 +0100

Fix 6030.1


>---------------------------------------------------------------

46356405afc65300ba80e2b90bcfa705ec655a6c
far/RegExp.cpp | 16 ++++++++++++++--
1 file changed, 14 insertions(+), 2 deletions(-)

diff --git a/far/RegExp.cpp b/far/RegExp.cpp
index 8881e9682..d8749da6b 100644
--- a/far/RegExp.cpp
+++ b/far/RegExp.cpp
@@ -593,10 +593,14 @@ int RegExp::CalcLength(string_view src)

if (src[i] != L'}' && !(ISWORD(src[i]) || ISSPACE(src[i])))
throw MAKE_REGEX_EXCEPTION(errSyntax, i);
+
+ ++bracketscount;
}
}
-
- bracketscount++;
+ else
+ {
+ ++bracketscount;
+ }

break;
}
@@ -3762,6 +3766,12 @@ void RegExp::TrimTail(const wchar_t* const start, const wchar_t*& strend) const

#include "testing.hpp"

+std::ostream& operator<<(std::ostream& Stream, RegExpMatch const& m)
+{
+ Stream << '{' << m.start << ", "sv << m.end << '}';
+ return Stream;
+}
+
static bool operator==(RegExpMatch const& a, RegExpMatch const& b)
{
return a.start == b.start && a.end == b.end;
@@ -3925,6 +3935,8 @@ TEST_CASE("regex.regression")
{ L"a(?{lol}.)?b"sv, L"ab"sv, {{ 0, 2}, {-1, -1}} },
{ L"^\\[([\\w.]+)\\]:\\s*\\[(.*)\\]$"sv, L"[i]: [r]"sv, {{ 0, 8}, { 1, 2}, { 6, 7}} },
{ L"([bc]+)|(zz)"sv, L"abc"sv, {{ 1, 3}, { 1, 3}, {-1, -1}} },
+ { L"(?:abc)"sv, L"abc"sv, {{ 0, 3}} },
+ { L"a(?!b)d"sv, L"ad"sv, {{ 0, 2}} },
};

RegExp re;


Reply all
Reply to author
Forward
0 new messages