summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2020-08-23 16:29:11 +0200
committerBram Moolenaar <Bram@vim.org>2020-08-23 16:29:11 +0200
commit430deb1945cbc7a17ed42c5c737fc08d2eef327a (patch)
tree0e154ff5d15480462323f3cc0d65398afe047835
parent8436773fad285215481c4ce2b32692e66fca599f (diff)
patch 8.2.1516: Vim9: error for :exe has wrong line numberv8.2.1516
Problem: Vim9: error for :exe has wrong line number. Solution: Set line number before calling do_cmdline_cmd(). (closes #6774)
-rw-r--r--src/testdir/test_vim9_script.vim5
-rw-r--r--src/version.c2
-rw-r--r--src/vim9execute.c3
3 files changed, 8 insertions, 2 deletions
diff --git a/src/testdir/test_vim9_script.vim b/src/testdir/test_vim9_script.vim
index 05b4e9f022..6417d21ee1 100644
--- a/src/testdir/test_vim9_script.vim
+++ b/src/testdir/test_vim9_script.vim
@@ -2159,8 +2159,9 @@ def Test_execute_cmd()
echomsg [1, 2, 3] #{a: 1, b: 2}
assert_match('^\[1, 2, 3\] {''a'': 1, ''b'': 2}$', Screenline(&lines))
- call CheckDefFailure(['execute xxx'], 'E1001:')
- call CheckDefFailure(['execute "cmd"# comment'], 'E488:')
+ call CheckDefFailure(['execute xxx'], 'E1001:', 1)
+ call CheckDefExecFailure(['execute "tabnext " .. 8'], 'E475:', 1)
+ call CheckDefFailure(['execute "cmd"# comment'], 'E488:', 1)
enddef
def Test_execute_cmd_vimscript()
diff --git a/src/version.c b/src/version.c
index 65b9d0fd72..4c2794af0b 100644
--- a/src/version.c
+++ b/src/version.c
@@ -755,6 +755,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 1516,
+/**/
1515,
/**/
1514,
diff --git a/src/vim9execute.c b/src/vim9execute.c
index a49f3d7c6f..53a748e971 100644
--- a/src/vim9execute.c
+++ b/src/vim9execute.c
@@ -1062,7 +1062,10 @@ call_def_function(
if (ga.ga_data != NULL)
{
if (iptr->isn_type == ISN_EXECUTE)
+ {
+ SOURCING_LNUM = iptr->isn_lnum;
do_cmdline_cmd((char_u *)ga.ga_data);
+ }
else
{
msg_sb_eol();