patch 8.2.4348: "legacy exe cmd" does not do what one would expect
Problem: "legacy exe cmd" does not do what one would expect.
Solution: Apply the "legacy" and "vim9script" command modifiers to the
argument of ":execute".
diff --git a/src/eval.c b/src/eval.c
index d775ee3..81a1dd0 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -6491,8 +6491,16 @@
did_emsg = save_did_emsg;
}
else if (eap->cmdidx == CMD_execute)
+ {
+ int save_sticky_cmdmod_flags = sticky_cmdmod_flags;
+
+ // "legacy exe cmd" and "vim9cmd exe cmd" applies to "cmd".
+ sticky_cmdmod_flags = cmdmod.cmod_flags
+ & (CMOD_LEGACY | CMOD_VIM9CMD);
do_cmdline((char_u *)ga.ga_data,
eap->getline, eap->cookie, DOCMD_NOWAIT|DOCMD_VERBOSE);
+ sticky_cmdmod_flags = save_sticky_cmdmod_flags;
+ }
}
ga_clear(&ga);