0
0
mirror of https://github.com/vim/vim.git synced 2025-09-26 04:04:07 -04:00

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)
This commit is contained in:
Bram Moolenaar
2020-10-30 20:46:26 +01:00
parent b2620202c7
commit d66960bf57
3 changed files with 8 additions and 8 deletions

View File

@@ -750,6 +750,8 @@ static char *(features[]) =
static int included_patches[] = static int included_patches[] =
{ /* Add new patch number below this line */ { /* Add new patch number below this line */
/**/
1927,
/**/ /**/
1926, 1926,
/**/ /**/

View File

@@ -6998,12 +6998,11 @@ compile_def_function(ufunc_T *ufunc, int set_return_type, cctx_T *outer_cctx)
char *errormsg = NULL; // error message char *errormsg = NULL; // error message
cctx_T cctx; cctx_T cctx;
garray_T *instr; garray_T *instr;
int called_emsg_before = called_emsg; int did_emsg_before = did_emsg;
int ret = FAIL; int ret = FAIL;
sctx_T save_current_sctx = current_sctx; sctx_T save_current_sctx = current_sctx;
int save_estack_compiling = estack_compiling; int save_estack_compiling = estack_compiling;
int do_estack_push; int do_estack_push;
int emsg_before = called_emsg;
int new_def_function = FALSE; int new_def_function = FALSE;
// When using a function that was compiled before: Free old instructions. // 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 // Bail out on the first error to avoid a flood of errors and report
// the right line number when inside try/catch. // the right line number when inside try/catch.
if (emsg_before != called_emsg) if (did_emsg_before != did_emsg)
goto erret; goto erret;
if (line != NULL && *line == '|') 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 // beyond the last line
break; break;
} }
emsg_before = called_emsg;
CLEAR_FIELD(ea); CLEAR_FIELD(ea);
ea.cmdlinep = &line; ea.cmdlinep = &line;
@@ -7585,7 +7583,7 @@ erret:
if (errormsg != NULL) if (errormsg != NULL)
emsg(errormsg); emsg(errormsg);
else if (called_emsg == called_emsg_before) else if (did_emsg == did_emsg_before)
emsg(_(e_compiling_def_function_failed)); emsg(_(e_compiling_def_function_failed));
} }

View File

@@ -828,7 +828,7 @@ call_def_function(
int defcount = ufunc->uf_args.ga_len - argc; int defcount = ufunc->uf_args.ga_len - argc;
sctx_T save_current_sctx = current_sctx; sctx_T save_current_sctx = current_sctx;
int breakcheck_count = 0; int breakcheck_count = 0;
int called_emsg_before = called_emsg; int did_emsg_before = did_emsg;
int save_suppress_errthrow = suppress_errthrow; int save_suppress_errthrow = suppress_errthrow;
msglist_T **saved_msg_list = NULL; msglist_T **saved_msg_list = NULL;
msglist_T *private_msg_list = NULL; msglist_T *private_msg_list = NULL;
@@ -853,7 +853,7 @@ call_def_function(
|| (ufunc->uf_def_status == UF_TO_BE_COMPILED || (ufunc->uf_def_status == UF_TO_BE_COMPILED
&& compile_def_function(ufunc, FALSE, NULL) == FAIL)) && 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), semsg(_(e_function_is_not_compiled_str),
printable_func_name(ufunc)); printable_func_name(ufunc));
return FAIL; return FAIL;
@@ -2924,7 +2924,7 @@ failed_early:
// Not sure if this is necessary. // Not sure if this is necessary.
suppress_errthrow = save_suppress_errthrow; 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), semsg(_(e_unknown_error_while_executing_str),
printable_func_name(ufunc)); printable_func_name(ufunc));
return ret; return ret;