aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/ex_docmd.c
diff options
context:
space:
mode:
authorJan Edmund Lazo <jan.lazo@mail.utoronto.ca>2019-06-03 02:23:38 -0400
committerJan Edmund Lazo <jan.lazo@mail.utoronto.ca>2019-06-03 20:11:29 -0400
commit7ad621b6d924ef912a4c4c7e64175213dc82a16f (patch)
tree307964d419edbcf7cec025cc0a0e9b22dbd61929 /src/nvim/ex_docmd.c
parent16b1e8f9c070ad853c6c63b43591e297bf512662 (diff)
downloadrneovim-7ad621b6d924ef912a4c4c7e64175213dc82a16f.tar.gz
rneovim-7ad621b6d924ef912a4c4c7e64175213dc82a16f.tar.bz2
rneovim-7ad621b6d924ef912a4c4c7e64175213dc82a16f.zip
vim-patch:8.0.1518: error messages suppressed after ":silent! try"
Problem: Error messages suppressed after ":silent! try". (Ben Reilly) Solution: Restore emsg_silent before executing :try. (closes vim/vim#2531) https://github.com/vim/vim/commit/2be57331524e93da52a0663f4a334d21c05123bb
Diffstat (limited to 'src/nvim/ex_docmd.c')
-rw-r--r--src/nvim/ex_docmd.c18
1 files changed, 13 insertions, 5 deletions
diff --git a/src/nvim/ex_docmd.c b/src/nvim/ex_docmd.c
index ec4b16fbb0..7a7b20c35f 100644
--- a/src/nvim/ex_docmd.c
+++ b/src/nvim/ex_docmd.c
@@ -2217,11 +2217,19 @@ static char_u * do_one_cmd(char_u **cmdlinep,
ea.arg = skipwhite(p);
}
- /*
- * 7. Switch on command name.
- *
- * The "ea" structure holds the arguments that can be used.
- */
+ // The :try command saves the emsg_silent flag, reset it here when
+ // ":silent! try" was used, it should only apply to :try itself.
+ if (ea.cmdidx == CMD_try && did_esilent > 0) {
+ emsg_silent -= did_esilent;
+ if (emsg_silent < 0) {
+ emsg_silent = 0;
+ }
+ did_esilent = 0;
+ }
+
+ // 7. Execute the command.
+ //
+ // The "ea" structure holds the arguments that can be used.
ea.cmdlinep = cmdlinep;
ea.getline = fgetline;
ea.cookie = cookie;