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;