diff options
author | zeertzjq <zeertzjq@outlook.com> | 2022-08-23 10:38:53 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-08-23 10:38:53 +0800 |
commit | d5328ea408d93d53b46417a65ca3b2fc99ab64b6 (patch) | |
tree | 0352a53acec92b8073dc58f180f52b821aceaeb3 /src/nvim/eval/userfunc.c | |
parent | 48a4657aee76e41d097b0730c91bcca78b5bc9c7 (diff) | |
download | rneovim-d5328ea408d93d53b46417a65ca3b2fc99ab64b6.tar.gz rneovim-d5328ea408d93d53b46417a65ca3b2fc99ab64b6.tar.bz2 rneovim-d5328ea408d93d53b46417a65ca3b2fc99ab64b6.zip |
vim-patch:8.2.0522: several errors are not tested for (#19901)
Problem: Several errors are not tested for.
Solution: Add tests. (Yegappan Lakshmanan, closes vim/vim#5892)
https://github.com/vim/vim/commit/ee4e0c1e9a81cb5d96e0060203a9033c2f28588e
Omit Test_range() change: reverted in patch 8.2.0615.
Cherry-pick Test_z_no_space_before_xxx() from patch 8.2.0195.
Cherry-pick Test_reverse_sort_uniq() change from patch 8.2.0183.
Make uniq() error behavior consistent with sort().
Cherry-pick Test_set_ttytype() change from patch 8.1.1826.
Cherry-pick quickfix checks from patch 8.1.2373 to test_preview.vim.
Test_viminfo_error() is applicable.
Cherry-pick E1058 from patch 8.2.0149 and port Test_deep_nest() to Lua.
Diffstat (limited to 'src/nvim/eval/userfunc.c')
-rw-r--r-- | src/nvim/eval/userfunc.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/nvim/eval/userfunc.c b/src/nvim/eval/userfunc.c index c46cb6ba5d..2542a5aeb0 100644 --- a/src/nvim/eval/userfunc.c +++ b/src/nvim/eval/userfunc.c @@ -1885,6 +1885,8 @@ theend: return name; } +#define MAX_FUNC_NESTING 50 + /// ":function" void ex_function(exarg_T *eap) { @@ -2304,8 +2306,12 @@ void ex_function(exarg_T *eap) p += eval_fname_script((const char *)p); xfree(trans_function_name((char **)&p, true, 0, NULL, NULL)); if (*skipwhite((char *)p) == '(') { - nesting++; - indent += 2; + if (nesting == MAX_FUNC_NESTING - 1) { + emsg(_("E1058: function nesting too deep")); + } else { + nesting++; + indent += 2; + } } } |