Mercurial > vim
changeset 22758:48feb3dd0d25 v8.2.1927
patch 8.2.1927: Vim9: get unknown error with an error in a timer function
Commit: https://github.com/vim/vim/commit/d66960bf578410e83ef96ad2f4206b26a139d817
Author: Bram Moolenaar <Bram@vim.org>
Date: Fri Oct 30 20:46:26 2020 +0100
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 https://github.com/vim/vim/issues/7231)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Fri, 30 Oct 2020 21:00:04 +0100 |
parents | eef3cb7bc773 |
children | 257a1e77a5ec |
files | src/version.c src/vim9compile.c src/vim9execute.c |
diffstat | 3 files changed, 8 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/src/version.c +++ b/src/version.c @@ -751,6 +751,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 1927, +/**/ 1926, /**/ 1925,
--- a/src/vim9compile.c +++ b/src/vim9compile.c @@ -6998,12 +6998,11 @@ compile_def_function(ufunc_T *ufunc, int 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 // 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 // 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)); }
--- 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;