diff options
-rw-r--r-- | src/testdir/test_vim9_script.vim | 23 | ||||
-rw-r--r-- | src/version.c | 2 | ||||
-rw-r--r-- | src/vim9compile.c | 5 |
3 files changed, 30 insertions, 0 deletions
diff --git a/src/testdir/test_vim9_script.vim b/src/testdir/test_vim9_script.vim index dd33a923a..4fa690450 100644 --- a/src/testdir/test_vim9_script.vim +++ b/src/testdir/test_vim9_script.vim @@ -67,6 +67,29 @@ def Test_range_only() endif enddef +def Test_invalid_range() + var lines =<< trim END + :123 eval 1 + 2 + END + v9.CheckDefAndScriptFailure(lines, 'E481:', 1) + + lines =<< trim END + :123 if true + endif + END + v9.CheckDefAndScriptFailure(lines, 'E481:', 1) + + lines =<< trim END + :123 echo 'yes' + END + v9.CheckDefAndScriptFailure(lines, 'E481:', 1) + + lines =<< trim END + :123 cd there + END + v9.CheckDefAndScriptFailure(lines, 'E481:', 1) +enddef + let g:alist = [7] let g:astring = 'text' let g:anumber = 123 diff --git a/src/version.c b/src/version.c index 3f7825eee..f0269e44d 100644 --- a/src/version.c +++ b/src/version.c @@ -747,6 +747,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 4871, +/**/ 4870, /**/ 4869, diff --git a/src/vim9compile.c b/src/vim9compile.c index 8b22a8db2..b0cf6a787 100644 --- a/src/vim9compile.c +++ b/src/vim9compile.c @@ -3080,6 +3080,11 @@ compile_def_function( ea.forceit = TRUE; p = skipwhite(p + 1); } + if ((ea.argt & EX_RANGE) == 0 && ea.addr_count > 0) + { + emsg(_(e_no_range_allowed)); + goto erret; + } } switch (ea.cmdidx) |