patch 8.2.1898: command modifier parsing always uses global cmdmod
Problem: Command modifier parsing always uses global cmdmod.
Solution: Pass in cmdmod_T to use. Rename struct fields consistently.
diff --git a/src/ex_getln.c b/src/ex_getln.c
index b46748f..1325f77 100644
--- a/src/ex_getln.c
+++ b/src/ex_getln.c
@@ -195,7 +195,7 @@
int *patlen)
{
char_u *cmd;
- cmdmod_T save_cmdmod = cmdmod;
+ cmdmod_T dummy_cmdmod;
char_u *p;
int delim_optional = FALSE;
int delim;
@@ -231,8 +231,8 @@
ea.cmd = ccline.cmdbuff;
ea.addr_type = ADDR_LINES;
- parse_command_modifiers(&ea, &dummy, TRUE);
- cmdmod = save_cmdmod;
+ CLEAR_FIELD(dummy_cmdmod);
+ parse_command_modifiers(&ea, &dummy, &dummy_cmdmod, TRUE);
cmd = skip_range(ea.cmd, TRUE, NULL);
if (vim_strchr((char_u *)"sgvl", *cmd) == NULL)
@@ -4163,8 +4163,8 @@
pum_undisplay();
// don't use a new tab page
- cmdmod.tab = 0;
- cmdmod.noswapfile = 1;
+ cmdmod.cmod_tab = 0;
+ cmdmod.cmod_flags |= CMOD_NOSWAPFILE;
// Create a window for the command-line buffer.
if (win_split((int)p_cwh, WSP_BOT) == FAIL)