From 2be57331524e93da52a0663f4a334d21c05123bb Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Tue, 13 Feb 2018 18:05:18 +0100 Subject: 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 #2531) --- src/ex_docmd.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'src/ex_docmd.c') diff --git a/src/ex_docmd.c b/src/ex_docmd.c index 5825bf1d1b..b923980e35 100644 --- a/src/ex_docmd.c +++ b/src/ex_docmd.c @@ -2880,8 +2880,18 @@ do_one_cmd( } #endif + /* 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. Switch on command name. + * 7. Execute the command. * * The "ea" structure holds the arguments that can be used. */ -- cgit v1.2.3