mirror of
https://github.com/vim/vim.git
synced 2025-07-26 11:04:33 -04:00
patch 8.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'.
This commit is contained in:
parent
54b2bfa399
commit
777b30f827
@ -787,8 +787,9 @@ do_cmdline(
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* It's possible to create an endless loop with ":execute", catch that
|
/* It's possible to create an endless loop with ":execute", catch that
|
||||||
* here. The value of 200 allows nested function calls, ":source", etc. */
|
* here. The value of 200 allows nested function calls, ":source", etc.
|
||||||
if (call_depth == 200)
|
* Allow 200 or 'maxfuncdepth', whatever is larger. */
|
||||||
|
if (call_depth >= 200 && call_depth >= p_mfd)
|
||||||
{
|
{
|
||||||
EMSG(_("E169: Command too recursive"));
|
EMSG(_("E169: Command too recursive"));
|
||||||
#ifdef FEAT_EVAL
|
#ifdef FEAT_EVAL
|
||||||
|
@ -40,3 +40,24 @@ func Test_nested_argument()
|
|||||||
delfunc g:X
|
delfunc g:X
|
||||||
unlet g:Y
|
unlet g:Y
|
||||||
endfunc
|
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
|
||||||
|
@ -764,6 +764,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
137,
|
||||||
/**/
|
/**/
|
||||||
136,
|
136,
|
||||||
/**/
|
/**/
|
||||||
|
Loading…
x
Reference in New Issue
Block a user