From: Bram Moolenaar Date: Fri, 30 Oct 2020 19:46:26 +0000 (+0100) Subject: patch 8.2.1927: Vim9: get unknown error with an error in a timer function X-Git-Tag: v8.2.1927 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=d66960bf578410e83ef96ad2f4206b26a139d817;p=vim patch 8.2.1927: Vim9: get unknown error with an error in a timer function Problem: Vim9: get unknown error with an error in a timer function. Solution: Use did_emsg instead of called_emsg. (closes #7231) --- diff --git a/src/version.c b/src/version.c index 96a9430fb..be975a7b5 100644 --- a/src/version.c +++ b/src/version.c @@ -750,6 +750,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 1927, /**/ 1926, /**/ diff --git a/src/vim9compile.c b/src/vim9compile.c index 225d5d50e..bc1481dc8 100644 --- a/src/vim9compile.c +++ b/src/vim9compile.c @@ -6998,12 +6998,11 @@ compile_def_function(ufunc_T *ufunc, int set_return_type, cctx_T *outer_cctx) char *errormsg = NULL; // error message cctx_T cctx; garray_T *instr; - int called_emsg_before = called_emsg; + int did_emsg_before = did_emsg; int ret = FAIL; sctx_T save_current_sctx = current_sctx; int save_estack_compiling = estack_compiling; int do_estack_push; - int emsg_before = called_emsg; int new_def_function = FALSE; // When using a function that was compiled before: Free old instructions. @@ -7107,7 +7106,7 @@ compile_def_function(ufunc_T *ufunc, int set_return_type, cctx_T *outer_cctx) // Bail out on the first error to avoid a flood of errors and report // the right line number when inside try/catch. - if (emsg_before != called_emsg) + if (did_emsg_before != did_emsg) goto erret; if (line != NULL && *line == '|') @@ -7127,7 +7126,6 @@ compile_def_function(ufunc_T *ufunc, int set_return_type, cctx_T *outer_cctx) // beyond the last line break; } - emsg_before = called_emsg; CLEAR_FIELD(ea); ea.cmdlinep = &line; @@ -7585,7 +7583,7 @@ erret: if (errormsg != NULL) emsg(errormsg); - else if (called_emsg == called_emsg_before) + else if (did_emsg == did_emsg_before) emsg(_(e_compiling_def_function_failed)); } diff --git a/src/vim9execute.c b/src/vim9execute.c index 9c4665193..abf88b1ae 100644 --- a/src/vim9execute.c +++ b/src/vim9execute.c @@ -828,7 +828,7 @@ call_def_function( int defcount = ufunc->uf_args.ga_len - argc; sctx_T save_current_sctx = current_sctx; int breakcheck_count = 0; - int called_emsg_before = called_emsg; + int did_emsg_before = did_emsg; int save_suppress_errthrow = suppress_errthrow; msglist_T **saved_msg_list = NULL; msglist_T *private_msg_list = NULL; @@ -853,7 +853,7 @@ call_def_function( || (ufunc->uf_def_status == UF_TO_BE_COMPILED && compile_def_function(ufunc, FALSE, NULL) == FAIL)) { - if (called_emsg == called_emsg_before) + if (did_emsg == did_emsg_before) semsg(_(e_function_is_not_compiled_str), printable_func_name(ufunc)); return FAIL; @@ -2924,7 +2924,7 @@ failed_early: // Not sure if this is necessary. suppress_errthrow = save_suppress_errthrow; - if (ret != OK && called_emsg == called_emsg_before) + if (ret != OK && did_emsg == did_emsg_before) semsg(_(e_unknown_error_while_executing_str), printable_func_name(ufunc)); return ret;