diff --git a/src/scriptfile.c b/src/scriptfile.c index 3b9fec1cd..260673754 100644 --- a/src/scriptfile.c +++ b/src/scriptfile.c @@ -1254,6 +1254,7 @@ do_source( #ifdef FEAT_PROFILE proftime_T wait_start; #endif + int save_sticky_cmdmod_flags = sticky_cmdmod_flags; int trigger_source_post = FALSE; ESTACK_CHECK_DECLARATION @@ -1394,6 +1395,9 @@ do_source( time_push(&tv_rel, &tv_start); #endif + // "legacy" does not apply to commands in the script + sticky_cmdmod_flags = 0; + save_current_sctx = current_sctx; current_sctx.sc_version = 1; // default script version @@ -1618,6 +1622,7 @@ almosttheend: theend: vim_free(fname_exp); + sticky_cmdmod_flags = save_sticky_cmdmod_flags; #ifdef FEAT_EVAL estack_compiling = save_estack_compiling; #endif diff --git a/src/testdir/test_vim9_cmd.vim b/src/testdir/test_vim9_cmd.vim index 4398cbf4f..a9309bea7 100644 --- a/src/testdir/test_vim9_cmd.vim +++ b/src/testdir/test_vim9_cmd.vim @@ -106,6 +106,18 @@ def Test_cmdmod_execute() unlet b:undo unlet g:undone unlet g:undtwo + + # "legacy" does not apply to a loaded script + lines =<< trim END + vim9script + export var exported = 'x' + END + writefile(lines, 'Xvim9import.vim') + lines =<< trim END + legacy exe "import './Xvim9import.vim'" + END + v9.CheckScriptSuccess(lines) + delete('Xvim9import.vim') enddef def Test_edit_wildcards() diff --git a/src/version.c b/src/version.c index 590aeb712..7e5d18fae 100644 --- a/src/version.c +++ b/src/version.c @@ -750,6 +750,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 4357, /**/ 4356, /**/