mirror of
https://github.com/vim/vim.git
synced 2025-07-26 11:04:33 -04:00
patch 8.2.0624: Vim9: no check for space before #comment
Problem: Vim9: no check for space before #comment. Solution: Add space checks. Fix :throw with double quoted string.
This commit is contained in:
parent
f7b398c6a9
commit
a72cfb80cd
@ -361,7 +361,7 @@ def Test_try_catch()
|
|||||||
enddef
|
enddef
|
||||||
|
|
||||||
def ThrowFromDef()
|
def ThrowFromDef()
|
||||||
throw 'getout'
|
throw "getout" # comment
|
||||||
enddef
|
enddef
|
||||||
|
|
||||||
func CatchInFunc()
|
func CatchInFunc()
|
||||||
@ -430,7 +430,7 @@ def Test_try_catch_fails()
|
|||||||
call CheckDefFailure(['if 2', 'endtry'], 'E171:')
|
call CheckDefFailure(['if 2', 'endtry'], 'E171:')
|
||||||
call CheckDefFailure(['try', 'echo 1', 'endtry'], 'E1032:')
|
call CheckDefFailure(['try', 'echo 1', 'endtry'], 'E1032:')
|
||||||
|
|
||||||
call CheckDefFailure(['throw'], 'E471:')
|
call CheckDefFailure(['throw'], 'E1015:')
|
||||||
call CheckDefFailure(['throw xxx'], 'E1001:')
|
call CheckDefFailure(['throw xxx'], 'E1001:')
|
||||||
enddef
|
enddef
|
||||||
|
|
||||||
@ -937,12 +937,18 @@ def Test_execute_cmd()
|
|||||||
setline(1, 'default')
|
setline(1, 'default')
|
||||||
execute 'call setline(1, "execute-string")'
|
execute 'call setline(1, "execute-string")'
|
||||||
assert_equal('execute-string', getline(1))
|
assert_equal('execute-string', getline(1))
|
||||||
|
|
||||||
|
execute "call setline(1, 'execute-string')"
|
||||||
|
assert_equal('execute-string', getline(1))
|
||||||
|
|
||||||
let cmd1 = 'call setline(1,'
|
let cmd1 = 'call setline(1,'
|
||||||
let cmd2 = '"execute-var")'
|
let cmd2 = '"execute-var")'
|
||||||
execute cmd1 cmd2
|
execute cmd1 cmd2 # comment
|
||||||
assert_equal('execute-var', getline(1))
|
assert_equal('execute-var', getline(1))
|
||||||
|
|
||||||
execute cmd1 cmd2 '|call setline(1, "execute-var-string")'
|
execute cmd1 cmd2 '|call setline(1, "execute-var-string")'
|
||||||
assert_equal('execute-var-string', getline(1))
|
assert_equal('execute-var-string', getline(1))
|
||||||
|
|
||||||
let cmd_first = 'call '
|
let cmd_first = 'call '
|
||||||
let cmd_last = 'setline(1, "execute-var-var")'
|
let cmd_last = 'setline(1, "execute-var-var")'
|
||||||
execute cmd_first .. cmd_last
|
execute cmd_first .. cmd_last
|
||||||
@ -950,17 +956,24 @@ def Test_execute_cmd()
|
|||||||
bwipe!
|
bwipe!
|
||||||
|
|
||||||
call CheckDefFailure(['execute xxx'], 'E1001:')
|
call CheckDefFailure(['execute xxx'], 'E1001:')
|
||||||
|
call CheckDefFailure(['execute "cmd"# comment'], 'E488:')
|
||||||
enddef
|
enddef
|
||||||
|
|
||||||
def Test_echo_cmd()
|
def Test_echo_cmd()
|
||||||
echo 'some'
|
echo 'some' # comment
|
||||||
echon 'thing'
|
echon 'thing'
|
||||||
assert_match('^something$', Screenline(&lines))
|
assert_match('^something$', Screenline(&lines))
|
||||||
|
|
||||||
|
echo "some" # comment
|
||||||
|
echon "thing"
|
||||||
|
assert_match('^something$', Screenline(&lines))
|
||||||
|
|
||||||
let str1 = 'some'
|
let str1 = 'some'
|
||||||
let str2 = 'more'
|
let str2 = 'more'
|
||||||
echo str1 str2
|
echo str1 str2
|
||||||
assert_match('^some more$', Screenline(&lines))
|
assert_match('^some more$', Screenline(&lines))
|
||||||
|
|
||||||
|
call CheckDefFailure(['echo "xxx"# comment'], 'E488:')
|
||||||
enddef
|
enddef
|
||||||
|
|
||||||
def Test_for_outside_of_function()
|
def Test_for_outside_of_function()
|
||||||
@ -1162,6 +1175,18 @@ def Test_vim9_comment()
|
|||||||
'try# comment',
|
'try# comment',
|
||||||
'echo "yes"',
|
'echo "yes"',
|
||||||
], 'E488:')
|
], 'E488:')
|
||||||
|
CheckDefFailure([
|
||||||
|
'try',
|
||||||
|
' throw#comment',
|
||||||
|
'catch',
|
||||||
|
'endtry',
|
||||||
|
], 'E1015:')
|
||||||
|
CheckDefFailure([
|
||||||
|
'try',
|
||||||
|
' throw "yes"#comment',
|
||||||
|
'catch',
|
||||||
|
'endtry',
|
||||||
|
], 'E488:')
|
||||||
CheckDefFailure([
|
CheckDefFailure([
|
||||||
'try',
|
'try',
|
||||||
' echo "yes"',
|
' echo "yes"',
|
||||||
@ -1380,6 +1405,65 @@ def Test_vim9_comment()
|
|||||||
'vim9script',
|
'vim9script',
|
||||||
'syntax cluster Some contains=Word# comment',
|
'syntax cluster Some contains=Word# comment',
|
||||||
], 'E475:')
|
], 'E475:')
|
||||||
|
|
||||||
|
CheckScriptSuccess([
|
||||||
|
'vim9script',
|
||||||
|
'command Echo echo # comment',
|
||||||
|
'command Echo # comment',
|
||||||
|
])
|
||||||
|
CheckScriptFailure([
|
||||||
|
'vim9script',
|
||||||
|
'command Echo echo# comment',
|
||||||
|
'Echo',
|
||||||
|
], 'E121:')
|
||||||
|
CheckScriptFailure([
|
||||||
|
'vim9script',
|
||||||
|
'command Echo# comment',
|
||||||
|
], 'E182:')
|
||||||
|
CheckScriptFailure([
|
||||||
|
'vim9script',
|
||||||
|
'command Echo echo',
|
||||||
|
'command Echo# comment',
|
||||||
|
], 'E182:')
|
||||||
|
|
||||||
|
CheckScriptSuccess([
|
||||||
|
'vim9script',
|
||||||
|
'function # comment',
|
||||||
|
])
|
||||||
|
CheckScriptFailure([
|
||||||
|
'vim9script',
|
||||||
|
'function# comment',
|
||||||
|
], 'E129:')
|
||||||
|
CheckScriptSuccess([
|
||||||
|
'vim9script',
|
||||||
|
'function CheckScriptSuccess # comment',
|
||||||
|
])
|
||||||
|
CheckScriptFailure([
|
||||||
|
'vim9script',
|
||||||
|
'function CheckScriptSuccess# comment',
|
||||||
|
], 'E488:')
|
||||||
|
|
||||||
|
CheckScriptSuccess([
|
||||||
|
'vim9script',
|
||||||
|
'func DeleteMe()',
|
||||||
|
'endfunc',
|
||||||
|
'delfunction DeleteMe # comment',
|
||||||
|
])
|
||||||
|
CheckScriptFailure([
|
||||||
|
'vim9script',
|
||||||
|
'func DeleteMe()',
|
||||||
|
'endfunc',
|
||||||
|
'delfunction DeleteMe# comment',
|
||||||
|
], 'E488:')
|
||||||
|
|
||||||
|
CheckScriptSuccess([
|
||||||
|
'vim9script',
|
||||||
|
'call execute("ls") # comment',
|
||||||
|
])
|
||||||
|
CheckScriptFailure([
|
||||||
|
'vim9script',
|
||||||
|
'call execute("ls")# comment',
|
||||||
|
], 'E488:')
|
||||||
enddef
|
enddef
|
||||||
|
|
||||||
def Test_vim9_comment_gui()
|
def Test_vim9_comment_gui()
|
||||||
|
@ -1007,7 +1007,7 @@ ex_command(exarg_T *eap)
|
|||||||
if (ASCII_ISALPHA(*p))
|
if (ASCII_ISALPHA(*p))
|
||||||
while (ASCII_ISALNUM(*p))
|
while (ASCII_ISALNUM(*p))
|
||||||
++p;
|
++p;
|
||||||
if (!ends_excmd(*p) && !VIM_ISWHITE(*p))
|
if (!ends_excmd2(eap->arg, p) && !VIM_ISWHITE(*p))
|
||||||
{
|
{
|
||||||
emsg(_("E182: Invalid command name"));
|
emsg(_("E182: Invalid command name"));
|
||||||
return;
|
return;
|
||||||
@ -1018,7 +1018,7 @@ ex_command(exarg_T *eap)
|
|||||||
// If there is nothing after the name, and no attributes were specified,
|
// If there is nothing after the name, and no attributes were specified,
|
||||||
// we are listing commands
|
// we are listing commands
|
||||||
p = skipwhite(end);
|
p = skipwhite(end);
|
||||||
if (!has_attr && ends_excmd(*p))
|
if (!has_attr && ends_excmd2(eap->arg, p))
|
||||||
{
|
{
|
||||||
uc_list(name, end - name);
|
uc_list(name, end - name);
|
||||||
}
|
}
|
||||||
|
@ -2373,7 +2373,7 @@ ex_function(exarg_T *eap)
|
|||||||
/*
|
/*
|
||||||
* ":function" without argument: list functions.
|
* ":function" without argument: list functions.
|
||||||
*/
|
*/
|
||||||
if (ends_excmd(*eap->arg))
|
if (ends_excmd2(eap->cmd, eap->arg))
|
||||||
{
|
{
|
||||||
if (!eap->skip)
|
if (!eap->skip)
|
||||||
{
|
{
|
||||||
@ -3711,7 +3711,7 @@ ex_call(exarg_T *eap)
|
|||||||
if (!failed || eap->cstack->cs_trylevel > 0)
|
if (!failed || eap->cstack->cs_trylevel > 0)
|
||||||
{
|
{
|
||||||
// Check for trailing illegal characters and a following command.
|
// Check for trailing illegal characters and a following command.
|
||||||
if (!ends_excmd(*arg))
|
if (!ends_excmd2(eap->arg, arg))
|
||||||
{
|
{
|
||||||
if (!failed)
|
if (!failed)
|
||||||
{
|
{
|
||||||
|
@ -746,6 +746,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 */
|
||||||
|
/**/
|
||||||
|
624,
|
||||||
/**/
|
/**/
|
||||||
623,
|
623,
|
||||||
/**/
|
/**/
|
||||||
|
@ -5752,11 +5752,6 @@ compile_throw(char_u *arg, cctx_T *cctx UNUSED)
|
|||||||
{
|
{
|
||||||
char_u *p = skipwhite(arg);
|
char_u *p = skipwhite(arg);
|
||||||
|
|
||||||
if (ends_excmd(*p))
|
|
||||||
{
|
|
||||||
emsg(_(e_argreq));
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
if (compile_expr1(&p, cctx) == FAIL)
|
if (compile_expr1(&p, cctx) == FAIL)
|
||||||
return NULL;
|
return NULL;
|
||||||
if (may_generate_2STRING(-1, cctx) == FAIL)
|
if (may_generate_2STRING(-1, cctx) == FAIL)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user