diff options
author | zeertzjq <zeertzjq@outlook.com> | 2022-06-14 20:46:18 +0800 |
---|---|---|
committer | zeertzjq <zeertzjq@outlook.com> | 2022-06-14 21:12:27 +0800 |
commit | 0a0cda95286bf62fbce2776a0c0081cea39a88a8 (patch) | |
tree | 03f43740a5822d058abf8822e9bfe8b561d460be /src/nvim/ex_docmd.c | |
parent | 6130b4a84b41b71f4c0c58093a29585c6c67ff16 (diff) | |
download | rneovim-0a0cda95286bf62fbce2776a0c0081cea39a88a8.tar.gz rneovim-0a0cda95286bf62fbce2776a0c0081cea39a88a8.tar.bz2 rneovim-0a0cda95286bf62fbce2776a0c0081cea39a88a8.zip |
vim-patch:8.2.5088: value of cmod_verbose is a bit complicated to use
Problem: Value of cmod_verbose is a bit complicated to use.
Solution: Use zero for not set, value + 1 when set. (closes vim/vim#10564)
https://github.com/vim/vim/commit/cd7496382efc9e6748326c6cda7f01003fa07063
Omit has_cmdmod(): only used for Vim9 script
Diffstat (limited to 'src/nvim/ex_docmd.c')
-rw-r--r-- | src/nvim/ex_docmd.c | 21 |
1 files changed, 5 insertions, 16 deletions
diff --git a/src/nvim/ex_docmd.c b/src/nvim/ex_docmd.c index 7ccbaaa4cb..28b1a7580d 100644 --- a/src/nvim/ex_docmd.c +++ b/src/nvim/ex_docmd.c @@ -1430,12 +1430,6 @@ bool parse_cmdline(char *cmdline, exarg_T *eap, CmdParseInfo *cmdinfo, char **er } after_modifier = eap->cmd; - if (cmdinfo->cmdmod.cmod_verbose != 0) { - cmdinfo->verbose = cmdinfo->cmdmod.cmod_verbose < 0 ? 0 : cmdinfo->cmdmod.cmod_verbose; - } else { - cmdinfo->verbose = -1; - } - // Save location after command modifiers cmd = eap->cmd; // Skip ranges to find command name since we need the command to know what kind of range it uses @@ -1559,9 +1553,6 @@ int execute_cmd(exarg_T *eap, CmdParseInfo *cmdinfo, bool preview) cmdmod = cmdinfo->cmdmod; // Apply command modifiers - if (cmdinfo->verbose >= 0) { - cmdmod.cmod_verbose = cmdinfo->verbose == 0 ? -1 : cmdinfo->verbose; - } apply_cmdmod(&cmdmod); if (!MODIFIABLE(curbuf) && (eap->argt & EX_MODIFY) @@ -2614,12 +2605,10 @@ int parse_command_modifiers(exarg_T *eap, char **errormsg, cmdmod_T *cmod, bool break; } if (ascii_isdigit(*eap->cmd)) { - cmod->cmod_verbose = atoi((char *)eap->cmd); - if (cmod->cmod_verbose == 0) { - cmod->cmod_verbose = -1; - } + // zero means not set, one is verbose == 0, etc. + cmod->cmod_verbose = atoi((char *)eap->cmd) + 1; } else { - cmod->cmod_verbose = 1; + cmod->cmod_verbose = 2; // default: verbose == 1 } eap->cmd = p; continue; @@ -2638,11 +2627,11 @@ static void apply_cmdmod(cmdmod_T *cmod) sandbox++; cmod->cmod_did_sandbox = true; } - if (cmod->cmod_verbose != 0) { + if (cmod->cmod_verbose > 0) { if (cmod->cmod_verbose_save == 0) { cmod->cmod_verbose_save = p_verbose + 1; } - p_verbose = cmod->cmod_verbose < 0 ? 0 : cmod->cmod_verbose; + p_verbose = cmod->cmod_verbose - 1; } if ((cmod->cmod_flags & (CMOD_SILENT | CMOD_UNSILENT)) |