summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2020-11-02 21:08:47 +0100
committerBram Moolenaar <Bram@vim.org>2020-11-02 21:08:47 +0100
commit36113e46b4a7e8c33aa1ed1c9cfa6591c952183d (patch)
tree3a476ec4c9511912db92c02e325f009e96eeb2c9
parentdbfa795d8b66c99ee758b132d6043871b9061563 (diff)
downloadvim-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.c15
-rw-r--r--src/testdir/test_vim9_cmd.vim9
-rw-r--r--src/version.c2
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,