Author: Matti Picus <[email protected]>
Branch: unicode-utf8
Changeset: r95271:ac5e084fa5b9
Date: 2018-11-04 06:47 -0500
http://bitbucket.org/pypy/pypy/changeset/ac5e084fa5b9/
Log: fix merge from fix-sre-problems
diff --git a/rpython/rlib/rsre/rsre_core.py b/rpython/rlib/rsre/rsre_core.py
--- a/rpython/rlib/rsre/rsre_core.py
+++ b/rpython/rlib/rsre/rsre_core.py
@@ -460,7 +460,7 @@
ptr = self.start_ptr
if not self.next_char_ok(ctx, pattern, ptr, self.ppos3):
return
- self.start_ptr = ptr + 1
+ self.start_ptr = ctx.next(ptr)
return self.find_first_result(ctx, pattern)
def next_char_ok(self, ctx, pattern, ptr, ppos):
@@ -736,9 +736,9 @@
startptr, length_bytes = get_group_ref(ctx, marks,
pattern.pat(ppos))
if length_bytes < 0:
return # group was not previously defined
- if not match_repeated_ignore(ctx, ptr, startptr, length_bytes):
+ ptr = match_repeated_ignore(ctx, ptr, startptr, length_bytes)
+ if ptr < ctx.ZERO:
return # no match
- ptr = ctx.go_forward_by_bytes(ptr, length_bytes)
ppos += 1
elif op == OPCODE_GROUPREF_EXISTS:
diff --git a/rpython/rlib/rsre/rsre_utf8.py b/rpython/rlib/rsre/rsre_utf8.py
--- a/rpython/rlib/rsre/rsre_utf8.py
+++ b/rpython/rlib/rsre/rsre_utf8.py
@@ -66,12 +66,12 @@
return position_high - position_low
-def make_utf8_ctx(pattern, utf8string, bytestart, byteend, flags):
+def make_utf8_ctx(utf8string, bytestart, byteend, flags):
if bytestart < 0: bytestart = 0
elif bytestart > len(utf8string): bytestart = len(utf8string)
if byteend < 0: byteend = 0
elif byteend > len(utf8string): byteend = len(utf8string)
- ctx = Utf8MatchContext(pattern, utf8string, bytestart, byteend, flags)
+ ctx = Utf8MatchContext(utf8string, bytestart, byteend, flags)
ctx.debug_check_pos(bytestart)
ctx.debug_check_pos(byteend)
return ctx
@@ -81,8 +81,8 @@
# utf8string.
from rpython.rlib.rsre.rsre_core import search_context
- ctx = make_utf8_ctx(pattern, utf8string, bytestart, byteend, flags)
- if search_context(ctx):
+ ctx = make_utf8_ctx(utf8string, bytestart, byteend, flags)
+ if search_context(ctx, pattern):
return ctx
else:
return None
@@ -93,9 +93,9 @@
# utf8string.
from rpython.rlib.rsre.rsre_core import match_context
- ctx = make_utf8_ctx(pattern, utf8string, bytestart, byteend, flags)
+ ctx = make_utf8_ctx(utf8string, bytestart, byteend, flags)
ctx.fullmatch_only = fullmatch
- if match_context(ctx):
+ if match_context(ctx, pattern):
return ctx
else:
return None
diff --git a/rpython/rlib/rsre/test/support.py
b/rpython/rlib/rsre/test/support.py
--- a/rpython/rlib/rsre/test/support.py
+++ b/rpython/rlib/rsre/test/support.py
@@ -111,9 +111,9 @@
start, end = _adjust(start, end, len(string))
start = Position(start)
end = Position(end)
- ctx = MatchContextForTests(pattern, string, start, end, flags)
+ ctx = MatchContextForTests(string, start, end, flags)
ctx.fullmatch_only = fullmatch
- if match_context(ctx):
+ if match_context(ctx, pattern):
return ctx
else:
return None
@@ -125,8 +125,8 @@
start, end = _adjust(start, end, len(string))
start = Position(start)
end = Position(end)
- ctx = MatchContextForTests(pattern, string, start, end, flags)
- if search_context(ctx):
+ ctx = MatchContextForTests(string, start, end, flags)
+ if search_context(ctx, pattern):
return ctx
else:
return None
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit