diff src/eval.c @ 24713:34a5329b85aa v8.2.2895

patch 8.2.2895: Vim9: random characters appear in some error messages Commit: https://github.com/vim/vim/commit/4ac198c61cb3097d4839d5a697cc8b2b256ac575 Author: mityu <mityu.mail@gmail.com> Date: Fri May 28 17:52:40 2021 +0200 patch 8.2.2895: Vim9: random characters appear in some error messages Problem: Vim9: random characters appear in some error messages. Solution: Pass the correct pointer. (closes https://github.com/vim/vim/issues/8277)
author Bram Moolenaar <Bram@vim.org>
date Fri, 28 May 2021 18:00:03 +0200
parents ad7cac75b2d1
children bf8feac8a89a
line wrap: on
line diff
--- a/src/eval.c
+++ b/src/eval.c
@@ -2358,7 +2358,7 @@ eval1(char_u **arg, typval_T *rettv, eva
 	    ++*arg;
 	if (evaluate && vim9script && !IS_WHITE_OR_NUL((*arg)[1]))
 	{
-	    error_white_both(p, op_falsy ? 2 : 1);
+	    error_white_both(*arg - (op_falsy ? 1 : 0), op_falsy ? 2 : 1);
 	    clear_tv(rettv);
 	    return FAIL;
 	}
@@ -2406,7 +2406,7 @@ eval1(char_u **arg, typval_T *rettv, eva
 	     */
 	    if (evaluate && vim9script && !IS_WHITE_OR_NUL((*arg)[1]))
 	    {
-		error_white_both(p, 1);
+		error_white_both(*arg, 1);
 		clear_tv(rettv);
 		evalarg_used->eval_flags = orig_flags;
 		return FAIL;
@@ -2511,7 +2511,7 @@ eval2(char_u **arg, typval_T *rettv, eva
 	     */
 	    if (evaluate && in_vim9script() && !IS_WHITE_OR_NUL((*arg)[2]))
 	    {
-		error_white_both(p, 2);
+		error_white_both(*arg, 2);
 		clear_tv(rettv);
 		return FAIL;
 	    }
@@ -2637,7 +2637,7 @@ eval3(char_u **arg, typval_T *rettv, eva
 	     */
 	    if (evaluate && in_vim9script() && !IS_WHITE_OR_NUL((*arg)[2]))
 	    {
-		error_white_both(p, 2);
+		error_white_both(*arg, 2);
 		clear_tv(rettv);
 		return FAIL;
 	    }
@@ -2735,10 +2735,13 @@ eval4(char_u **arg, typval_T *rettv, eva
 				   ? 0 : (evalarg->eval_flags & EVAL_EVALUATE);
 
 	if (getnext)
+	{
 	    *arg = eval_next_line(evalarg);
+	    p = *arg;
+	}
 	else if (evaluate && vim9script && !VIM_ISWHITE(**arg))
 	{
-	    error_white_both(p, len);
+	    error_white_both(*arg, len);
 	    clear_tv(rettv);
 	    return FAIL;
 	}
@@ -2898,7 +2901,7 @@ eval5(char_u **arg, typval_T *rettv, eva
 	{
 	    if (evaluate && vim9script && !VIM_ISWHITE(**arg))
 	    {
-		error_white_both(p, oplen);
+		error_white_both(*arg, oplen);
 		clear_tv(rettv);
 		return FAIL;
 	    }
@@ -3130,7 +3133,7 @@ eval6(
 	{
 	    if (evaluate && in_vim9script() && !VIM_ISWHITE(**arg))
 	    {
-		error_white_both(p, 1);
+		error_white_both(*arg, 1);
 		clear_tv(rettv);
 		return FAIL;
 	    }