mirror of
https://github.com/vim/vim.git
synced 2025-09-24 03:44:06 -04:00
patch 8.2.4622: Vim9: crash with :execute and :finish
Problem: Vim9: Crash with :execute and :finish. (Sergey Vlasov) Solution: Check for NULL. (closes #10011)
This commit is contained in:
@@ -2144,7 +2144,8 @@ getline_peek_skip_comments(evalarg_T *evalarg)
|
|||||||
p = skipwhite(next);
|
p = skipwhite(next);
|
||||||
if (*p != NUL && !vim9_comment_start(p))
|
if (*p != NUL && !vim9_comment_start(p))
|
||||||
return next;
|
return next;
|
||||||
(void)eval_next_line(evalarg);
|
if (eval_next_line(evalarg) == NULL)
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
@@ -2199,6 +2200,9 @@ eval_next_line(evalarg_T *evalarg)
|
|||||||
GETLINE_CONCAT_ALL);
|
GETLINE_CONCAT_ALL);
|
||||||
else
|
else
|
||||||
line = next_line_from_context(evalarg->eval_cctx, TRUE);
|
line = next_line_from_context(evalarg->eval_cctx, TRUE);
|
||||||
|
if (line == NULL)
|
||||||
|
return NULL;
|
||||||
|
|
||||||
++evalarg->eval_break_count;
|
++evalarg->eval_break_count;
|
||||||
if (gap->ga_itemsize > 0 && ga_grow(gap, 1) == OK)
|
if (gap->ga_itemsize > 0 && ga_grow(gap, 1) == OK)
|
||||||
{
|
{
|
||||||
|
@@ -1830,6 +1830,24 @@ def Test_execute_cmd_vimscript()
|
|||||||
v9.CheckScriptSuccess(lines)
|
v9.CheckScriptSuccess(lines)
|
||||||
enddef
|
enddef
|
||||||
|
|
||||||
|
def Test_execute_finish()
|
||||||
|
# the empty lines are relevant here
|
||||||
|
var lines =<< trim END
|
||||||
|
vim9script
|
||||||
|
|
||||||
|
var vname = "g:hello"
|
||||||
|
|
||||||
|
if exists(vname) | finish | endif | execute vname '= "world"'
|
||||||
|
|
||||||
|
assert_equal('world', g:hello)
|
||||||
|
|
||||||
|
if exists(vname) | finish | endif | execute vname '= "world"'
|
||||||
|
|
||||||
|
assert_report('should not be reached')
|
||||||
|
END
|
||||||
|
v9.CheckScriptSuccess(lines)
|
||||||
|
enddef
|
||||||
|
|
||||||
def Test_echo_cmd()
|
def Test_echo_cmd()
|
||||||
echo 'some' # comment
|
echo 'some' # comment
|
||||||
echon 'thing'
|
echon 'thing'
|
||||||
|
@@ -750,6 +750,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 */
|
||||||
|
/**/
|
||||||
|
4622,
|
||||||
/**/
|
/**/
|
||||||
4621,
|
4621,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user