From 6100d02aab7c8294b581cb299250eea164b50e9d Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Sun, 2 Oct 2016 16:51:57 +0200 Subject: patch 8.0.0020 Problem: The regexp engines are not reentrant. Solution: Add regexec_T and save/restore the state when needed. --- src/testdir/test_expr.vim | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'src/testdir/test_expr.vim') diff --git a/src/testdir/test_expr.vim b/src/testdir/test_expr.vim index dff8e36f4..e5c918c8c 100644 --- a/src/testdir/test_expr.vim +++ b/src/testdir/test_expr.vim @@ -405,9 +405,10 @@ func Test_substitute_expr() \ {-> submatch(2) . submatch(3) . submatch(1)}, '')) func Recurse() - return substitute('yyy', 'y*', {-> g:val}, '') + return substitute('yyy', 'y\(.\)y', {-> submatch(1)}, '') endfunc - call assert_equal('--', substitute('xxx', 'x*', {-> '-' . Recurse() . '-'}, '')) + " recursive call works + call assert_equal('-y-x-', substitute('xxx', 'x\(.\)x', {-> '-' . Recurse() . '-' . submatch(1) . '-'}, '')) endfunc func Test_invalid_submatch() -- cgit v1.2.1