Mercurial > vim
diff src/channel.c @ 8746:4c38a4733578 v7.4.1662
commit https://github.com/vim/vim/commit/c4dcd60c76666bf113719f929709ad6120eb6528
Author: Bram Moolenaar <Bram@vim.org>
Date: Sat Mar 26 22:56:46 2016 +0100
patch 7.4.1662
Problem: No test for an invalid Ex command on a channel.
Solution: Test handling an invalid command gracefully. Avoid getting an
error message, do write it to the channel log.
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Sat, 26 Mar 2016 23:00:05 +0100 |
parents | 6e567914f55a |
children | df91c8263f04 |
line wrap: on
line diff
--- a/src/channel.c +++ b/src/channel.c @@ -1661,8 +1661,17 @@ channel_exe_cmd(channel_T *channel, int if (STRCMP(cmd, "ex") == 0) { + int save_called_emsg = called_emsg; + + called_emsg = FALSE; ch_logs(channel, "Executing ex command '%s'", (char *)arg); + ++emsg_silent; do_cmdline_cmd(arg); + --emsg_silent; + if (called_emsg) + ch_logs(channel, "Ex command error: '%s'", + (char *)get_vim_var_str(VV_ERRMSG)); + called_emsg = save_called_emsg; } else if (STRCMP(cmd, "normal") == 0) {