patch 8.2.0611: Vim9: no check for space before #comment
Problem: Vim9: no check for space before #comment.
Solution: Add space checks.
diff --git a/src/eval.c b/src/eval.c
index 94ecf93..43c2008 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -1773,7 +1773,7 @@
p = skipwhite(arg);
ret = eval1(&p, rettv, evaluate);
- if (ret == FAIL || !ends_excmd(*p))
+ if (ret == FAIL || !ends_excmd2(arg, p))
{
if (ret != FAIL)
clear_tv(rettv);
diff --git a/src/evalvars.c b/src/evalvars.c
index b5075d5..1d0599f 100644
--- a/src/evalvars.c
+++ b/src/evalvars.c
@@ -737,7 +737,7 @@
emsg(_(e_invarg));
else if (expr[0] == '.')
emsg(_("E985: .= is not supported with script version 2"));
- else if (!ends_excmd(*arg))
+ else if (!ends_excmd2(eap->cmd, arg))
// ":let var1 var2"
arg = list_arg_vars(eap, arg, &first);
else if (!eap->skip)
@@ -1068,7 +1068,7 @@
char_u *tofree;
typval_T tv;
- while (!ends_excmd(*arg) && !got_int)
+ while (!ends_excmd2(eap->cmd, arg) && !got_int)
{
if (error || eap->skip)
{
diff --git a/src/ex_docmd.c b/src/ex_docmd.c
index e2d771e..43cd013 100644
--- a/src/ex_docmd.c
+++ b/src/ex_docmd.c
@@ -7903,7 +7903,7 @@
p = skipwhite(p);
// Check for trailing illegal characters
- if (!ends_excmd(*p))
+ if (!ends_excmd2(eap->arg, p))
eap->errmsg = e_trailing;
else
eap->nextcmd = check_nextcmd(p);
diff --git a/src/testdir/test_vim9_script.vim b/src/testdir/test_vim9_script.vim
index 4b73399..70653f0 100644
--- a/src/testdir/test_vim9_script.vim
+++ b/src/testdir/test_vim9_script.vim
@@ -1208,6 +1208,69 @@
'let g:var = 123',
'unlet g:var # something',
], 'E488:')
+
+ CheckScriptSuccess([
+ 'vim9script',
+ 'if 1 # comment',
+ ' echo "yes"',
+ 'elseif 2 #comment',
+ ' echo "no"',
+ 'endif',
+ ])
+
+ CheckScriptFailure([
+ 'vim9script',
+ 'if 1# comment',
+ ' echo "yes"',
+ 'endif',
+ ], 'E15:')
+
+ CheckScriptFailure([
+ 'vim9script',
+ 'if 0 # comment',
+ ' echo "yes"',
+ 'elseif 2#comment',
+ ' echo "no"',
+ 'endif',
+ ], 'E15:')
+
+ CheckScriptSuccess([
+ 'vim9script',
+ 'let # comment',
+ ])
+
+ CheckScriptFailure([
+ 'vim9script',
+ 'let# comment',
+ ], 'E121:')
+
+ CheckScriptSuccess([
+ 'vim9script',
+ 'let v:version # comment',
+ ])
+
+ CheckScriptFailure([
+ 'vim9script',
+ 'let v:version# comment',
+ ], 'E121:')
+
+ CheckScriptSuccess([
+ 'vim9script',
+ 'new'
+ 'call setline(1, ["# define pat", "last"])',
+ '$',
+ 'dsearch /pat/ #comment',
+ 'bwipe!',
+ ])
+
+ CheckScriptFailure([
+ 'vim9script',
+ 'new'
+ 'call setline(1, ["# define pat", "last"])',
+ '$',
+ 'dsearch /pat/#comment',
+ 'bwipe!',
+ ], 'E488:')
enddef
" Keep this last, it messes up highlighting.
diff --git a/src/version.c b/src/version.c
index 1c5ad56..d051d79 100644
--- a/src/version.c
+++ b/src/version.c
@@ -747,6 +747,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 611,
+/**/
610,
/**/
609,