summaryrefslogtreecommitdiff
path: root/src/testdir/test_nested_function.vim
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2017-01-02 15:26:27 +0100
committerBram Moolenaar <Bram@vim.org>2017-01-02 15:26:27 +0100
commit777b30f827bcbe10a40640b1bf0361cb93a16be1 (patch)
tree73dc6a7c70a6d3a79e74817c92d0d5d302982dc9 /src/testdir/test_nested_function.vim
parent54b2bfa399017ebae76ed62f21578261d1b55c1f (diff)
downloadvim-git-777b30f827bcbe10a40640b1bf0361cb93a16be1.tar.gz
patch 8.0.0137v8.0.0137
Problem: When 'maxfuncdepth' is set above 200 the nesting is limited to 200. (Brett Stahlman) Solution: Allow for Ex command recursion depending on 'maxfuncdepth'.
Diffstat (limited to 'src/testdir/test_nested_function.vim')
-rw-r--r--src/testdir/test_nested_function.vim21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/testdir/test_nested_function.vim b/src/testdir/test_nested_function.vim
index 7e301ed33..afaaea6ce 100644
--- a/src/testdir/test_nested_function.vim
+++ b/src/testdir/test_nested_function.vim
@@ -40,3 +40,24 @@ func Test_nested_argument()
delfunc g:X
unlet g:Y
endfunc
+
+func Recurse(count)
+ if a:count > 0
+ call Recurse(a:count - 1)
+ endif
+endfunc
+
+func Test_max_nesting()
+ let call_depth_here = 2
+ let ex_depth_here = 5
+ set mfd&
+
+ call Recurse(99 - call_depth_here)
+ call assert_fails('call Recurse(' . (100 - call_depth_here) . ')', 'E132:')
+
+ set mfd=210
+ call Recurse(209 - ex_depth_here)
+ call assert_fails('call Recurse(' . (210 - ex_depth_here) . ')', 'E169:')
+
+ set mfd&
+endfunc