patch 9.0.2183: Maximum callback depth is not configurable
Problem: Maximum callback depth is not configurable.
Solution: Revert patch 9.0.2103. Set 'maxfuncdepth' in test.
(zeertzjq)
fixes: #13732
closes: #13736
Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
diff --git a/src/testdir/test_popupwin.vim b/src/testdir/test_popupwin.vim
index d01eccc..c20ff48 100644
--- a/src/testdir/test_popupwin.vim
+++ b/src/testdir/test_popupwin.vim
@@ -4206,10 +4206,13 @@
endfunc
func Test_popup_close_callback_recursive()
+ set maxfuncdepth=20
" this invokes the callback recursively
let winid = popup_create('something', #{callback: 'popup_close'})
redraw
- call assert_fails('call popup_close(winid)', 'E169')
+ call assert_fails('call popup_close(winid)', 'E169:')
+
+ set maxfuncdepth&
endfunc
" vim: shiftwidth=2 sts=2
diff --git a/src/userfunc.c b/src/userfunc.c
index ea03e78..c0a2487 100644
--- a/src/userfunc.c
+++ b/src/userfunc.c
@@ -14,9 +14,6 @@
#include "vim.h"
#if defined(FEAT_EVAL) || defined(PROTO)
-
-#define MAX_CALLBACK_DEPTH 20
-
/*
* All user-defined functions are found in this hashtable.
*/
@@ -3603,7 +3600,7 @@
if (callback->cb_name == NULL || *callback->cb_name == NUL)
return FAIL;
- if (callback_depth > MAX_CALLBACK_DEPTH)
+ if (callback_depth > p_mfd)
{
emsg(_(e_command_too_recursive));
return FAIL;
diff --git a/src/version.c b/src/version.c
index 6120c53..ec2d0e2 100644
--- a/src/version.c
+++ b/src/version.c
@@ -705,6 +705,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 2183,
+/**/
2182,
/**/
2181,