aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/api/command.c
diff options
context:
space:
mode:
authorzeertzjq <zeertzjq@outlook.com>2022-12-16 08:54:13 +0800
committerGitHub <noreply@github.com>2022-12-16 08:54:13 +0800
commit72a19b2ffe93ab20f6ff1825e11b43da4e44842a (patch)
tree8c3dcfcc052c0c5d5e8b1895c2354938f357ba97 /src/nvim/api/command.c
parenta2bf0cef10926880b28d542887d2d3836e332929 (diff)
downloadrneovim-72a19b2ffe93ab20f6ff1825e11b43da4e44842a.tar.gz
rneovim-72a19b2ffe93ab20f6ff1825e11b43da4e44842a.tar.bz2
rneovim-72a19b2ffe93ab20f6ff1825e11b43da4e44842a.zip
fix(api): "emsg_silent" should imply "silent" in nvim_cmd (#21438)
Diffstat (limited to 'src/nvim/api/command.c')
-rw-r--r--src/nvim/api/command.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/nvim/api/command.c b/src/nvim/api/command.c
index ac1927eeb1..abd265f2cf 100644
--- a/src/nvim/api/command.c
+++ b/src/nvim/api/command.c
@@ -660,6 +660,12 @@ String nvim_cmd(uint64_t channel_id, Dict(cmd) *cmd, Dict(cmd_opts) *opts, Error
OBJ_TO_CMOD_FLAG(CMOD_LOCKMARKS, mods.lockmarks, false, "'mods.lockmarks'");
OBJ_TO_CMOD_FLAG(CMOD_NOSWAPFILE, mods.noswapfile, false, "'mods.noswapfile'");
+ if (cmdinfo.cmdmod.cmod_flags & CMOD_ERRSILENT) {
+ // CMOD_ERRSILENT must imply CMOD_SILENT, otherwise apply_cmdmod() and undo_cmdmod() won't
+ // work properly.
+ cmdinfo.cmdmod.cmod_flags |= CMOD_SILENT;
+ }
+
if ((cmdinfo.cmdmod.cmod_flags & CMOD_SANDBOX) && !(ea.argt & EX_SBOXOK)) {
VALIDATION_ERROR("Command cannot be run in sandbox");
}