patch 9.1.1588: Vim9: cannot split dict inside command block

Commit: 
https://github.com/vim/vim/commit/a566a780297793b6a309ac4563bb17eedb83e6b0
Author: Yegappan Lakshmanan <yegap...@yahoo.com>
Date:   Fri Jul 25 18:23:58 2025 +0200

    patch 9.1.1588: Vim9: cannot split dict inside command block
    
    Problem:  Vim9: cannot split dict inside command block
              (lacygoill)
    Solution: Remove the current restriction (Yegappan Lakshmanan).
    
    fixes: #17841
    closes: #17845
    
    Signed-off-by: Yegappan Lakshmanan <yegap...@yahoo.com>
    Signed-off-by: Christian Brabandt <c...@256bit.org>

diff --git a/src/dict.c b/src/dict.c
index d43ca863e..5339bb52c 100644
--- a/src/dict.c
+++ b/src/dict.c
@@ -1075,12 +1075,12 @@ eval_dict(char_u **arg, typval_T *rettv, evalarg_T 
*evalarg, int literal)
        had_comma = **arg == ',';
        if (had_comma)
        {
-           if (vim9script && (*arg)[1] != NUL && !VIM_ISWHITE((*arg)[1]))
+           if (vim9script && !IS_WHITE_NL_OR_NUL((*arg)[1]))
            {
                semsg(_(e_white_space_required_after_str_str), ",", *arg);
                goto failret;
            }
-           *arg = skipwhite(*arg + 1);
+           *arg = skipwhite_and_nl(*arg + 1);
        }
 
        // the "}" can be on the next line
diff --git a/src/testdir/test_vim9_script.vim b/src/testdir/test_vim9_script.vim
index 0008f1e51..8e968d6ef 100644
--- a/src/testdir/test_vim9_script.vim
+++ b/src/testdir/test_vim9_script.vim
@@ -5457,6 +5457,22 @@ def Test_if_cond_shortcircuit_skip_indexing()
   v9.CheckSourceSuccess(lines)
 enddef
 
+" Test for defining a dict with multiple keys in a command-block
+def Test_multikey_dict_in_block()
+  var lines =<< trim END
+    vim9script
+    command NewCommand {
+         g:TestDict = {
+           'key': 'v1',
+           'other_key': 'v2' }
+       }
+    NewCommand
+  END
+  v9.CheckSourceSuccess(lines)
+  assert_equal({key: 'v1', other_key: 'v2'}, g:TestDict)
+  unlet g:TestDict
+enddef
+
 " Keep this last, it messes up highlighting.
 def Test_substitute_cmd()
   new
diff --git a/src/version.c b/src/version.c
index 16148447b..e9e601aa2 100644
--- a/src/version.c
+++ b/src/version.c
@@ -719,6 +719,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    1588,
 /**/
     1587,
 /**/

-- 
-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- 
You received this message because you are subscribed to the Google Groups 
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to vim_dev+unsubscr...@googlegroups.com.
To view this discussion visit 
https://groups.google.com/d/msgid/vim_dev/E1ufLJA-009vUI-RI%40256bit.org.

Raspunde prin e-mail lui