summaryrefslogtreecommitdiff
path: root/src/testdir/test_regexp_latin.vim
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2016-09-09 17:59:50 +0200
committerBram Moolenaar <Bram@vim.org>2016-09-09 17:59:50 +0200
commitd563883a1fb5ec6cf4a2758c5e36ac1ff4e9bb3d (patch)
treeb1c07157c325ac78d34edc28121b3bc2d77b79b2 /src/testdir/test_regexp_latin.vim
parent2931f2a5df0d962032d41060af84d9fd2cb35c9f (diff)
downloadvim-git-d563883a1fb5ec6cf4a2758c5e36ac1ff4e9bb3d.tar.gz
patch 7.4.2354v7.4.2354
Problem: The example that explains nested backreferences does not work properly with the new regexp engine. (Harm te Hennepe) Solution: Also save the end position when adding a state. (closes #990)
Diffstat (limited to 'src/testdir/test_regexp_latin.vim')
-rw-r--r--src/testdir/test_regexp_latin.vim15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/testdir/test_regexp_latin.vim b/src/testdir/test_regexp_latin.vim
index b3d258e09..15ff4f9e4 100644
--- a/src/testdir/test_regexp_latin.vim
+++ b/src/testdir/test_regexp_latin.vim
@@ -38,3 +38,18 @@ func Test_recursive_substitute()
call setwinvar(1, 'myvar', 1)
bwipe!
endfunc
+
+func Test_nested_backrefs()
+ " Check example in change.txt.
+ new
+ for re in range(0, 2)
+ exe 'set re=' . re
+ call setline(1, 'aa ab x')
+ 1s/\(\(a[a-d] \)*\)\(x\)/-\1- -\2- -\3-/
+ call assert_equal('-aa ab - -ab - -x-', getline(1))
+
+ call assert_equal('-aa ab - -ab - -x-', substitute('aa ab x', '\(\(a[a-d] \)*\)\(x\)', '-\1- -\2- -\3-', ''))
+ endfor
+ bwipe!
+ set re=0
+endfunc