Patch 8.2.1268

4 views
Skip to first unread message

Bram Moolenaar

unread,
Jul 22, 2020, 12:17:44 PM7/22/20
to vim...@googlegroups.com

Patch 8.2.1268
Problem: Vim9: no error for using double quote comment after :func or :def.
Solution: Only accept double quote when not in Vim9 script and not after
:def. (closes #6483)
Files: src/userfunc.c, src/testdir/test_vim9_script.vim


*** ../vim-8.2.1267/src/userfunc.c 2020-07-19 20:48:56.182995168 +0200
--- src/userfunc.c 2020-07-21 23:15:46.917435582 +0200
***************
*** 2555,2562 ****
int is_heredoc = FALSE;
char_u *skip_until = NULL;
char_u *heredoc_trimmed = NULL;

! if (in_vim9script() && eap->forceit)
{
emsg(_(e_nobang));
return NULL;
--- 2555,2563 ----
int is_heredoc = FALSE;
char_u *skip_until = NULL;
char_u *heredoc_trimmed = NULL;
+ int vim9script = in_vim9script();

! if (vim9script && eap->forceit)
{
emsg(_(e_nobang));
return NULL;
***************
*** 2786,2791 ****
--- 2787,2793 ----
ret_type = NULL;
}
}
+ p = skipwhite(p);
}
else
// find extra arguments "range", "dict", "abort" and "closure"
***************
*** 2826,2833 ****
// Makes 'exe "func Test()\n...\nendfunc"' work.
if (*p == '\n')
line_arg = p + 1;
! else if (*p != NUL && *p != '"' && !(eap->cmdidx == CMD_def && *p == '#')
! && !eap->skip && !did_emsg)
emsg(_(e_trailing));

/*
--- 2828,2838 ----
// Makes 'exe "func Test()\n...\nendfunc"' work.
if (*p == '\n')
line_arg = p + 1;
! else if (*p != NUL
! && !(*p == '"' && !(vim9script || eap->cmdidx == CMD_def))
! && !(*p == '#' && (vim9script || eap->cmdidx == CMD_def))
! && !eap->skip
! && !did_emsg)
emsg(_(e_trailing));

/*
***************
*** 3386,3392 ****
fp->uf_varargs = varargs;
if (sandbox)
flags |= FC_SANDBOX;
! if (in_vim9script() && !ASCII_ISUPPER(*fp->uf_name))
flags |= FC_VIM9;
fp->uf_flags = flags;
fp->uf_calls = 0;
--- 3391,3397 ----
fp->uf_varargs = varargs;
if (sandbox)
flags |= FC_SANDBOX;
! if (vim9script && !ASCII_ISUPPER(*fp->uf_name))
flags |= FC_VIM9;
fp->uf_flags = flags;
fp->uf_calls = 0;
*** ../vim-8.2.1267/src/testdir/test_vim9_script.vim 2020-07-20 22:37:40.554206364 +0200
--- src/testdir/test_vim9_script.vim 2020-07-21 23:14:31.785615774 +0200
***************
*** 2198,2203 ****
--- 2198,2232 ----
'vim9script',
'call execute("ls")# comment',
], 'E488:')
+
+ CheckScriptFailure([
+ 'def Test() " comment',
+ 'enddef',
+ ], 'E488:')
+ CheckScriptFailure([
+ 'vim9script',
+ 'def Test() " comment',
+ 'enddef',
+ ], 'E488:')
+
+ CheckScriptSuccess([
+ 'func Test() " comment',
+ 'endfunc',
+ ])
+ CheckScriptFailure([
+ 'vim9script',
+ 'func Test() " comment',
+ 'endfunc',
+ ], 'E488:')
+
+ CheckScriptSuccess([
+ 'def Test() # comment',
+ 'enddef',
+ ])
+ CheckScriptFailure([
+ 'func Test() # comment',
+ 'endfunc',
+ ], 'E488:')
enddef

def Test_vim9_comment_gui()
*** ../vim-8.2.1267/src/version.c 2020-07-22 18:14:55.256525080 +0200
--- src/version.c 2020-07-22 18:16:20.508085004 +0200
***************
*** 756,757 ****
--- 756,759 ----
{ /* Add new patch number below this line */
+ /**/
+ 1268,
/**/

--
Over the years, I've developed my sense of deja vu so acutely that now
I can remember things that *have* happened before ...

/// Bram Moolenaar -- Br...@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
Reply all
Reply to author
Forward
0 new messages