mirror of
https://github.com/vim/vim.git
synced 2025-09-24 03:44:06 -04:00
patch 8.2.2809: Vim9: :def function compilation fails when using :legacy
Problem: Vim9: :def function compilation fails when using :legacy. Solution: Reset CMOD_LEGACY when compiling a function. (closes #8137)
This commit is contained in:
@@ -8767,6 +8767,7 @@ compile_def_function(
|
||||
int ret = FAIL;
|
||||
sctx_T save_current_sctx = current_sctx;
|
||||
int save_estack_compiling = estack_compiling;
|
||||
int save_cmod_flags = cmdmod.cmod_flags;
|
||||
int do_estack_push;
|
||||
int new_def_function = FALSE;
|
||||
#ifdef FEAT_PROFILE
|
||||
@@ -8811,6 +8812,9 @@ compile_def_function(
|
||||
current_sctx = ufunc->uf_script_ctx;
|
||||
current_sctx.sc_version = SCRIPT_VERSION_VIM9;
|
||||
|
||||
// Don't use the flag from ":legacy" here.
|
||||
cmdmod.cmod_flags &= ~CMOD_LEGACY;
|
||||
|
||||
// Make sure error messages are OK.
|
||||
do_estack_push = !estack_top_is_ufunc(ufunc, 1);
|
||||
if (do_estack_push)
|
||||
@@ -9403,6 +9407,7 @@ erret:
|
||||
|
||||
current_sctx = save_current_sctx;
|
||||
estack_compiling = save_estack_compiling;
|
||||
cmdmod.cmod_flags = save_cmod_flags;
|
||||
if (do_estack_push)
|
||||
estack_pop();
|
||||
|
||||
|
Reference in New Issue
Block a user