# HG changeset patch # User Bram Moolenaar # Date 1363202602 -3600 # Node ID 6ce32844727d8d04e8dc91310d0a4118d81aa161 # Parent 4b6c1d915dfeb9db8f60b92889c14b8b6e4747d6 updated for version 7.3.860 Problem: When using --remote-expr try/catch does not work. (Andrey Radev) Solution: Set emsg_silent instead of emsg_off. diff --git a/src/main.c b/src/main.c --- 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 --- 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,