diff options
author | Bram Moolenaar <Bram@vim.org> | 2020-11-02 21:08:47 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2020-11-02 21:08:47 +0100 |
commit | 36113e46b4a7e8c33aa1ed1c9cfa6591c952183d (patch) | |
tree | 3a476ec4c9511912db92c02e325f009e96eeb2c9 | |
parent | dbfa795d8b66c99ee758b132d6043871b9061563 (diff) | |
download | vim-git-36113e46b4a7e8c33aa1ed1c9cfa6591c952183d.tar.gz |
patch 8.2.1943: Vim9: wrong error message when colon is missingv8.2.1943
Problem: Vim9: wrong error message when colon is missing.
Solution: Check for a missing colon. (issue #7239)
-rw-r--r-- | src/ex_docmd.c | 15 | ||||
-rw-r--r-- | src/testdir/test_vim9_cmd.vim | 9 | ||||
-rw-r--r-- | src/version.c | 2 |
3 files changed, 22 insertions, 4 deletions
diff --git a/src/ex_docmd.c b/src/ex_docmd.c index d2cc05f59..290dcee26 100644 --- a/src/ex_docmd.c +++ b/src/ex_docmd.c @@ -1807,12 +1807,19 @@ do_one_cmd( if (ea.cmd == cmd + 1 && *cmd == '$') // should be "$VAR = val" --ea.cmd; - else if (ea.cmd > cmd) + p = find_ex_command(&ea, NULL, lookup_scriptvar, NULL); + if (ea.cmdidx == CMD_SIZE) { - emsg(_(e_colon_required_before_a_range)); - goto doend; + char_u *ar = skip_range(ea.cmd, TRUE, NULL); + + // If a ':' before the range is missing, give a clearer error + // message. + if (ar > ea.cmd) + { + emsg(_(e_colon_required_before_a_range)); + goto doend; + } } - p = find_ex_command(&ea, NULL, lookup_scriptvar, NULL); } else #endif diff --git a/src/testdir/test_vim9_cmd.vim b/src/testdir/test_vim9_cmd.vim index dc4dc76ba..2ba779b76 100644 --- a/src/testdir/test_vim9_cmd.vim +++ b/src/testdir/test_vim9_cmd.vim @@ -460,6 +460,15 @@ def Test_command_modifier_other() # verbose enddef +def Test_range_after_command_modifier() + CheckScriptFailure(['vim9script', 'silent keepjump 1d _'], 'E1050:', 2) + new + setline(1, 'xxx') + CheckScriptSuccess(['vim9script', 'silent keepjump :1d _']) + assert_equal('', getline(1)) + bwipe! +enddef + def Test_eval_command() var from = 3 var to = 5 diff --git a/src/version.c b/src/version.c index 7591c83d7..b1125670c 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 */ /**/ + 1943, +/**/ 1942, /**/ 1941, |