Fix a regex clause that was totally wrong

This commit is contained in:
Dave Halter
2019-01-10 01:00:08 +01:00
parent 57320af6eb
commit 610a820799
2 changed files with 5 additions and 1 deletions

View File

@@ -388,7 +388,7 @@ class DiffParser(object):
# endmarker or another dedented code block. # endmarker or another dedented code block.
typ, string, start_pos, prefix = next(tokens) typ, string, start_pos, prefix = next(tokens)
if '\n' in prefix or '\r' in prefix: if '\n' in prefix or '\r' in prefix:
prefix = re.sub(r'(<=\n|\r)[^\n\r]+$', '', prefix) prefix = re.sub(r'(?<=\n|\r)[^\n\r]+$', '', prefix)
else: else:
prefix = '' prefix = ''
yield PythonToken( yield PythonToken(

View File

@@ -956,6 +956,9 @@ def test_wrong_backslash(differ):
def test_random_unicode_characters(differ): def test_random_unicode_characters(differ):
"""
Those issues were all found with the fuzzer.
"""
differ.initialize('') differ.initialize('')
differ.parse('\x1dĔBϞɛˁşʑ˳˻ȣſéÎ\x90̕ȟòwʘ\x1dĔBϞɛˁşʑ˳˻ȣſéÎ', parsers=1, expect_error_leaves=True) differ.parse('\x1dĔBϞɛˁşʑ˳˻ȣſéÎ\x90̕ȟòwʘ\x1dĔBϞɛˁşʑ˳˻ȣſéÎ', parsers=1, expect_error_leaves=True)
differ.parse('\r\r', parsers=1) differ.parse('\r\r', parsers=1)
@@ -965,4 +968,5 @@ def test_random_unicode_characters(differ):
differ.parse(s, parsers=1, expect_error_leaves=True) differ.parse(s, parsers=1, expect_error_leaves=True)
differ.parse('') differ.parse('')
differ.parse(s + '\n', parsers=1, expect_error_leaves=True) differ.parse(s + '\n', parsers=1, expect_error_leaves=True)
differ.parse(' result = (\r\f\x17\t\x11res)', parsers=2, expect_error_leaves=True)
differ.parse('') differ.parse('')