diff options
author | Bram Moolenaar <Bram@vim.org> | 2021-02-20 08:16:51 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2021-02-20 08:16:51 +0100 |
commit | ada1d870b4a818151cfba1c18962af2369b88df9 (patch) | |
tree | ce40e89dd6dfee82bd64473dc20d1e633ac62695 | |
parent | 10b9421f3bb7ac971fa63bd025c4c603c98f4a49 (diff) | |
download | vim-git-ada1d870b4a818151cfba1c18962af2369b88df9.tar.gz |
patch 8.2.2532: Vim9: confusing error if :k is used with a rangev8.2.2532
Problem: Vim9: confusing error if :k is used with a range.
Solution: Give an error about the range. (issue #7874)
-rw-r--r-- | src/testdir/test_vim9_script.vim | 5 | ||||
-rw-r--r-- | src/version.c | 2 | ||||
-rw-r--r-- | src/vim9compile.c | 1 | ||||
-rw-r--r-- | src/vim9script.c | 8 |
4 files changed, 15 insertions, 1 deletions
diff --git a/src/testdir/test_vim9_script.vim b/src/testdir/test_vim9_script.vim index d22c6538b..eb46d3565 100644 --- a/src/testdir/test_vim9_script.vim +++ b/src/testdir/test_vim9_script.vim @@ -3498,6 +3498,11 @@ def Test_unsupported_commands() CheckDefAndScriptFailure(lines, 'E1100:') lines =<< trim END + :1ka + END + CheckDefAndScriptFailure(lines, 'E481:') + + lines =<< trim END t END CheckDefFailure(lines, 'E1100:') diff --git a/src/version.c b/src/version.c index d802a49c2..a107650d5 100644 --- 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 */ /**/ + 2532, +/**/ 2531, /**/ 2530, diff --git a/src/vim9compile.c b/src/vim9compile.c index c75ead9d9..b12d887d9 100644 --- a/src/vim9compile.c +++ b/src/vim9compile.c @@ -8330,6 +8330,7 @@ compile_def_function( semsg(_(e_colon_required_before_range_str), cmd); goto erret; } + ea.addr_count = 1; if (ends_excmd2(line, ea.cmd)) { // A range without a command: jump to the line. diff --git a/src/vim9script.c b/src/vim9script.c index 751d8fb77..0994e513f 100644 --- a/src/vim9script.c +++ b/src/vim9script.c @@ -92,10 +92,16 @@ not_in_vim9(exarg_T *eap) if (in_vim9script()) switch (eap->cmdidx) { + case CMD_k: + if (eap->addr_count > 0) + { + emsg(_(e_norange)); + return FAIL; + } + // FALLTHROUGH case CMD_append: case CMD_change: case CMD_insert: - case CMD_k: case CMD_t: case CMD_xit: semsg(_(e_command_not_supported_in_vim9_script_missing_var_str), eap->cmd); |