changeset 25739:8c4dee4d1ac6 v8.2.3405

patch 8.2.3405: cannot have a comment line in a {} block of a user command Commit: https://github.com/vim/vim/commit/ec1b0968aa90d408a79b5b5dca465f65e69753a1 Author: Bram Moolenaar <Bram@vim.org> Date: Mon Sep 6 17:10:59 2021 +0200 patch 8.2.3405: cannot have a comment line in a {} block of a user command Problem: Cannot have a comment line in a {} block of a user command. Solution: Continue after the line break. (closes https://github.com/vim/vim/issues/8837)
author Bram Moolenaar <Bram@vim.org>
date Mon, 06 Sep 2021 17:15:06 +0200
parents bd72de88a9f4
children f798e5664c2b
files src/ex_docmd.c src/testdir/test_usercommands.vim src/version.c
diffstat 3 files changed, 13 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/ex_docmd.c
+++ b/src/ex_docmd.c
@@ -2807,7 +2807,16 @@ parse_command_modifiers(
 
 	// ignore comment and empty lines
 	if (comment_start(eap->cmd, starts_with_colon))
+	{
+	    // a comment ends at a NL
+	    if (eap->nextcmd == NULL)
+	    {
+		eap->nextcmd = vim_strchr(eap->cmd, '\n');
+		if (eap->nextcmd != NULL)
+		    ++eap->nextcmd;
+	    }
 	    return FAIL;
+	}
 	if (*eap->cmd == NUL)
 	{
 	    if (!skip_only)
--- a/src/testdir/test_usercommands.vim
+++ b/src/testdir/test_usercommands.vim
@@ -624,7 +624,8 @@ endfunc
 
 func Test_usercmd_with_block()
   command DoSomething {
-        g:didit = 'yes'
+        g:didit = 'yes'  # comment
+        # comment line
         g:didmore = 'more'
       }
   DoSomething
--- a/src/version.c
+++ b/src/version.c
@@ -756,6 +756,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    3405,
+/**/
     3404,
 /**/
     3403,