updated for version 7.3.1073
Problem: New regexp engine may run out of states.
Solution: Allocate states dynamically. Also make the test report errors.
diff --git a/src/testdir/test64.in b/src/testdir/test64.in
index 11b3b9c..b1bc071 100644
--- a/src/testdir/test64.in
+++ b/src/testdir/test64.in
@@ -348,6 +348,9 @@
:call add(tl, [2, '\_[^8-9]\+', "asfi\n9888", "asfi\n"])
:call add(tl, [2, '\_[^a]\+', "asfi\n9888", "sfi\n9888"])
:"
+:"""" Requiring lots of states.
+:call add(tl, [0, '[0-9a-zA-Z]\{8}-\([0-9a-zA-Z]\{4}-\)\{3}[0-9a-zA-Z]\{12}', " 12345678-1234-1234-1234-123456789012 ", "12345678-1234-1234-1234-123456789012", "1234-"])
+:"
:"
:"""" Run the tests
:"
@@ -361,7 +364,11 @@
: continue
: endif
: let ®expengine = engine
-: let l = matchlist(text, pat)
+: try
+: let l = matchlist(text, pat)
+: catch
+: $put ='ERROR: pat: \"' . pat . '\", text: \"' . text . '\", caused an exception: \"' . v:exception . '\"'
+: endtry
:" check the match itself
: if len(l) == 0 && len(t) > matchidx
: $put ='ERROR: pat: \"' . pat . '\", text: \"' . text . '\", did not match, expected: \"' . t[matchidx] . '\"'