mirror of
https://github.com/vim/vim.git
synced 2025-09-27 04:14:06 -04:00
patch 8.2.1500: Vim9: error when using address without a command
Problem: Vim9: error when using address without a command. Solution: Execute the range itself. (closes #6747)
This commit is contained in:
@@ -10,6 +10,13 @@ def Test_syntax()
|
|||||||
let other: list<string> = ['asdf']
|
let other: list<string> = ['asdf']
|
||||||
enddef
|
enddef
|
||||||
|
|
||||||
|
def Test_range_only()
|
||||||
|
new
|
||||||
|
setline(1, ['blah', 'Blah'])
|
||||||
|
:/Blah/
|
||||||
|
assert_equal(2, getcurpos()[1])
|
||||||
|
enddef
|
||||||
|
|
||||||
let s:appendToMe = 'xxx'
|
let s:appendToMe = 'xxx'
|
||||||
let s:addToMe = 111
|
let s:addToMe = 111
|
||||||
let g:existing = 'yes'
|
let g:existing = 'yes'
|
||||||
|
@@ -754,6 +754,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
1500,
|
||||||
/**/
|
/**/
|
||||||
1499,
|
1499,
|
||||||
/**/
|
/**/
|
||||||
|
@@ -6661,11 +6661,23 @@ compile_def_function(ufunc_T *ufunc, int set_return_type, cctx_T *outer_cctx)
|
|||||||
if (*cmd != '\'' || starts_with_colon)
|
if (*cmd != '\'' || starts_with_colon)
|
||||||
{
|
{
|
||||||
ea.cmd = skip_range(ea.cmd, NULL);
|
ea.cmd = skip_range(ea.cmd, NULL);
|
||||||
if (ea.cmd > cmd && !starts_with_colon)
|
if (ea.cmd > cmd)
|
||||||
|
{
|
||||||
|
if (!starts_with_colon)
|
||||||
{
|
{
|
||||||
emsg(_(e_colon_required_before_a_range));
|
emsg(_(e_colon_required_before_a_range));
|
||||||
goto erret;
|
goto erret;
|
||||||
}
|
}
|
||||||
|
if (ends_excmd2(line, ea.cmd))
|
||||||
|
{
|
||||||
|
// A range without a command: jump to the line.
|
||||||
|
// TODO: compile to a more efficient command, possibly
|
||||||
|
// calling parse_cmd_address().
|
||||||
|
ea.cmdidx = CMD_SIZE;
|
||||||
|
line = compile_exec(line, &ea, &cctx);
|
||||||
|
goto nextline;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
p = find_ex_command(&ea, NULL, starts_with_colon ? NULL
|
p = find_ex_command(&ea, NULL, starts_with_colon ? NULL
|
||||||
: (void *(*)(char_u *, size_t, cctx_T *))lookup_local,
|
: (void *(*)(char_u *, size_t, cctx_T *))lookup_local,
|
||||||
@@ -6845,6 +6857,7 @@ compile_def_function(ufunc_T *ufunc, int set_return_type, cctx_T *outer_cctx)
|
|||||||
line = compile_exec(line, &ea, &cctx);
|
line = compile_exec(line, &ea, &cctx);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
nextline:
|
||||||
if (line == NULL)
|
if (line == NULL)
|
||||||
goto erret;
|
goto erret;
|
||||||
line = skipwhite(line);
|
line = skipwhite(line);
|
||||||
|
Reference in New Issue
Block a user