summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/main.c12
-rw-r--r--src/version.c2
2 files changed, 10 insertions, 4 deletions
diff --git a/src/main.c b/src/main.c
index ef4893458..6c4f8ecee 100644
--- a/src/main.c
+++ b/src/main.c
@@ -4025,8 +4025,6 @@ server_to_input_buf(str)
/*
* Evaluate an expression that the client sent to a string.
- * Handles disabling error messages and disables debugging, otherwise Vim
- * hangs, waiting for "cont" to be typed.
*/
char_u *
eval_client_expr_to_string(expr)
@@ -4036,15 +4034,21 @@ eval_client_expr_to_string(expr)
int save_dbl = debug_break_level;
int save_ro = redir_off;
+ /* Disable debugging, otherwise Vim hangs, waiting for "cont" to be
+ * typed. */
debug_break_level = -1;
redir_off = 0;
- ++emsg_skip;
+ /* Do not display error message, otherwise Vim hangs, waiting for "cont"
+ * to be typed. Do generate errors so that try/catch works. */
+ ++emsg_silent;
res = eval_to_string(expr, NULL, TRUE);
debug_break_level = save_dbl;
redir_off = save_ro;
- --emsg_skip;
+ --emsg_silent;
+ if (emsg_silent < 0)
+ emsg_silent = 0;
/* A client can tell us to redraw, but not to display the cursor, so do
* that here. */
diff --git a/src/version.c b/src/version.c
index 8683c6d2d..237ec19dc 100644
--- a/src/version.c
+++ b/src/version.c
@@ -729,6 +729,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 860,
+/**/
859,
/**/
858,