diff options
author | Bram Moolenaar <Bram@vim.org> | 2021-07-11 16:52:45 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2021-07-11 16:52:45 +0200 |
commit | c03fe66ade4c79a4eb5fc05d1d549c8f931a04b6 (patch) | |
tree | abed0d47ce18c846909fcbbbf67bbddc3d1ef786 /src | |
parent | 4ece152ad60c4fbd5b98b849a39b8ad9a987d319 (diff) |
patch 8.2.3146: Vim9: line number wrong for :execute argumentv8.2.3146
Problem: Vim9: line number wrong for :execute argument.
Solution: Use the line number of the :execute command itself. (closes #8537)
Diffstat (limited to 'src')
-rw-r--r-- | src/eval.c | 4 | ||||
-rw-r--r-- | src/testdir/test_vim9_script.vim | 10 | ||||
-rw-r--r-- | src/version.c | 2 |
3 files changed, 16 insertions, 0 deletions
diff --git a/src/eval.c b/src/eval.c index 6537ffea41..5dc1642a16 100644 --- a/src/eval.c +++ b/src/eval.c @@ -6191,6 +6191,7 @@ ex_execute(exarg_T *eap) char_u *p; garray_T ga; int len; + long start_lnum = SOURCING_LNUM; ga_init2(&ga, 1, 80); @@ -6244,6 +6245,9 @@ ex_execute(exarg_T *eap) if (ret != FAIL && ga.ga_data != NULL) { + // use the first line of continuation lines for messages + SOURCING_LNUM = start_lnum; + if (eap->cmdidx == CMD_echomsg || eap->cmdidx == CMD_echoerr) { // Mark the already saved text as finishing the line, so that what diff --git a/src/testdir/test_vim9_script.vim b/src/testdir/test_vim9_script.vim index ab0c031c54..0602b2ae5b 100644 --- a/src/testdir/test_vim9_script.vim +++ b/src/testdir/test_vim9_script.vim @@ -4167,6 +4167,16 @@ def Test_option_modifier() set hlsearch& enddef +" This must be called last, it may cause following :def functions to fail +def Test_xxx_echoerr_line_number() + var lines =<< trim END + echoerr 'some' + .. ' error' + .. ' continued' + END + CheckDefExecAndScriptFailure(lines, 'some error continued', 1) +enddef + def ProfiledFunc() var n = 3 echo [[1, 2], [3, 4]]->filter((_, l) => l[0] == n) diff --git a/src/version.c b/src/version.c index 82d2d1fa0f..8e1d88e3e9 100644 --- a/src/version.c +++ b/src/version.c @@ -756,6 +756,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 3146, +/**/ 3145, /**/ 3144, |