Patch 8.2.3683
Problem:    Vim9: cannot use `=expr` in :...do commands.
Solution:   Add EX_EXPAND to the commands. (closes #9232)
Files:      src/ex_cmds.h, src/testdir/test_vim9_cmd.vim


*** ../vim-8.2.3682/src/ex_cmds.h       2021-11-12 11:25:06.291264320 +0000
--- src/ex_cmds.h       2021-11-27 11:31:56.043299947 +0000
***************
*** 145,151 ****
        EX_BANG|EX_RANGE|EX_FILES|EX_TRLBAR,
        ADDR_ARGUMENTS),
  EXCMD(CMD_argdo,      "argdo",        ex_listdo,
!       EX_BANG|EX_NEEDARG|EX_EXTRA|EX_NOTRLCOM|EX_RANGE|EX_DFLALL,
        ADDR_ARGUMENTS),
  EXCMD(CMD_argedit,    "argedit",      ex_argedit,
        
EX_BANG|EX_NEEDARG|EX_RANGE|EX_ZEROR|EX_FILES|EX_CMDARG|EX_ARGOPT|EX_TRLBAR,
--- 145,151 ----
        EX_BANG|EX_RANGE|EX_FILES|EX_TRLBAR,
        ADDR_ARGUMENTS),
  EXCMD(CMD_argdo,      "argdo",        ex_listdo,
!       EX_BANG|EX_NEEDARG|EX_EXTRA|EX_NOTRLCOM|EX_RANGE|EX_DFLALL|EX_EXPAND,
        ADDR_ARGUMENTS),
  EXCMD(CMD_argedit,    "argedit",      ex_argedit,
        
EX_BANG|EX_NEEDARG|EX_RANGE|EX_ZEROR|EX_FILES|EX_CMDARG|EX_ARGOPT|EX_TRLBAR,
***************
*** 235,241 ****
        EX_BANG|EX_EXTRA|EX_TRLBAR|EX_CMDWIN|EX_LOCK_OK,
        ADDR_NONE),
  EXCMD(CMD_bufdo,      "bufdo",        ex_listdo,
!       EX_BANG|EX_NEEDARG|EX_EXTRA|EX_NOTRLCOM|EX_RANGE|EX_DFLALL,
        ADDR_BUFFERS),
  EXCMD(CMD_bunload,    "bunload",      ex_bunload,
        EX_BANG|EX_RANGE|EX_BUFNAME|EX_COUNT|EX_EXTRA|EX_TRLBAR,
--- 235,241 ----
        EX_BANG|EX_EXTRA|EX_TRLBAR|EX_CMDWIN|EX_LOCK_OK,
        ADDR_NONE),
  EXCMD(CMD_bufdo,      "bufdo",        ex_listdo,
!       EX_BANG|EX_NEEDARG|EX_EXTRA|EX_NOTRLCOM|EX_RANGE|EX_DFLALL|EX_EXPAND,
        ADDR_BUFFERS),
  EXCMD(CMD_bunload,    "bunload",      ex_bunload,
        EX_BANG|EX_RANGE|EX_BUFNAME|EX_COUNT|EX_EXTRA|EX_TRLBAR,
***************
*** 301,307 ****
        EX_BANG|EX_FILE1|EX_TRLBAR|EX_CMDWIN|EX_LOCK_OK,
        ADDR_NONE),
  EXCMD(CMD_cdo,                "cdo",          ex_listdo,
!       EX_BANG|EX_NEEDARG|EX_EXTRA|EX_NOTRLCOM|EX_RANGE|EX_DFLALL,
        ADDR_QUICKFIX_VALID),
  EXCMD(CMD_center,     "center",       ex_align,
        EX_TRLBAR|EX_RANGE|EX_WHOLEFOLD|EX_EXTRA|EX_CMDWIN|EX_LOCK_OK|EX_MODIFY,
--- 301,307 ----
        EX_BANG|EX_FILE1|EX_TRLBAR|EX_CMDWIN|EX_LOCK_OK,
        ADDR_NONE),
  EXCMD(CMD_cdo,                "cdo",          ex_listdo,
!       EX_BANG|EX_NEEDARG|EX_EXTRA|EX_NOTRLCOM|EX_RANGE|EX_DFLALL|EX_EXPAND,
        ADDR_QUICKFIX_VALID),
  EXCMD(CMD_center,     "center",       ex_align,
        EX_TRLBAR|EX_RANGE|EX_WHOLEFOLD|EX_EXTRA|EX_CMDWIN|EX_LOCK_OK|EX_MODIFY,
***************
*** 313,319 ****
        EX_TRLBAR|EX_FILE1|EX_BANG,
        ADDR_NONE),
  EXCMD(CMD_cfdo,               "cfdo",         ex_listdo,
!       EX_BANG|EX_NEEDARG|EX_EXTRA|EX_NOTRLCOM|EX_RANGE|EX_DFLALL,
        ADDR_QUICKFIX_VALID),
  EXCMD(CMD_cfirst,     "cfirst",       ex_cc,
        EX_RANGE|EX_COUNT|EX_TRLBAR|EX_BANG,
--- 313,319 ----
        EX_TRLBAR|EX_FILE1|EX_BANG,
        ADDR_NONE),
  EXCMD(CMD_cfdo,               "cfdo",         ex_listdo,
!       EX_BANG|EX_NEEDARG|EX_EXTRA|EX_NOTRLCOM|EX_RANGE|EX_DFLALL|EX_EXPAND,
        ADDR_QUICKFIX_VALID),
  EXCMD(CMD_cfirst,     "cfirst",       ex_cc,
        EX_RANGE|EX_COUNT|EX_TRLBAR|EX_BANG,
***************
*** 838,844 ****
        EX_EXTRA|EX_NOTRLCOM|EX_XFILE,
        ADDR_NONE),
  EXCMD(CMD_ldo,                "ldo",          ex_listdo,
!       EX_BANG|EX_NEEDARG|EX_EXTRA|EX_NOTRLCOM|EX_RANGE|EX_DFLALL,
        ADDR_QUICKFIX_VALID),
  EXCMD(CMD_left,               "left",         ex_align,
        EX_TRLBAR|EX_RANGE|EX_WHOLEFOLD|EX_EXTRA|EX_CMDWIN|EX_LOCK_OK|EX_MODIFY,
--- 838,844 ----
        EX_EXTRA|EX_NOTRLCOM|EX_XFILE,
        ADDR_NONE),
  EXCMD(CMD_ldo,                "ldo",          ex_listdo,
!       EX_BANG|EX_NEEDARG|EX_EXTRA|EX_NOTRLCOM|EX_RANGE|EX_DFLALL|EX_EXPAND,
        ADDR_QUICKFIX_VALID),
  EXCMD(CMD_left,               "left",         ex_align,
        EX_TRLBAR|EX_RANGE|EX_WHOLEFOLD|EX_EXTRA|EX_CMDWIN|EX_LOCK_OK|EX_MODIFY,
***************
*** 859,865 ****
        EX_TRLBAR|EX_FILE1|EX_BANG,
        ADDR_NONE),
  EXCMD(CMD_lfdo,               "lfdo",         ex_listdo,
!       EX_BANG|EX_NEEDARG|EX_EXTRA|EX_NOTRLCOM|EX_RANGE|EX_DFLALL,
        ADDR_QUICKFIX_VALID),
  EXCMD(CMD_lfirst,     "lfirst",       ex_cc,
        EX_RANGE|EX_COUNT|EX_TRLBAR|EX_BANG,
--- 859,865 ----
        EX_TRLBAR|EX_FILE1|EX_BANG,
        ADDR_NONE),
  EXCMD(CMD_lfdo,               "lfdo",         ex_listdo,
!       EX_BANG|EX_NEEDARG|EX_EXTRA|EX_NOTRLCOM|EX_RANGE|EX_DFLALL|EX_EXPAND,
        ADDR_QUICKFIX_VALID),
  EXCMD(CMD_lfirst,     "lfirst",       ex_cc,
        EX_RANGE|EX_COUNT|EX_TRLBAR|EX_BANG,
***************
*** 1534,1540 ****
        
EX_BANG|EX_RANGE|EX_ZEROR|EX_EXTRA|EX_NOSPC|EX_TRLBAR|EX_CMDWIN|EX_LOCK_OK,
        ADDR_TABS),
  EXCMD(CMD_tabdo,      "tabdo",        ex_listdo,
!       EX_NEEDARG|EX_EXTRA|EX_NOTRLCOM|EX_RANGE|EX_DFLALL,
        ADDR_TABS),
  EXCMD(CMD_tabedit,    "tabedit",      ex_splitview,
        EX_BANG|EX_FILE1|EX_RANGE|EX_ZEROR|EX_CMDARG|EX_ARGOPT|EX_TRLBAR,
--- 1534,1540 ----
        
EX_BANG|EX_RANGE|EX_ZEROR|EX_EXTRA|EX_NOSPC|EX_TRLBAR|EX_CMDWIN|EX_LOCK_OK,
        ADDR_TABS),
  EXCMD(CMD_tabdo,      "tabdo",        ex_listdo,
!       EX_NEEDARG|EX_EXTRA|EX_NOTRLCOM|EX_RANGE|EX_DFLALL|EX_EXPAND,
        ADDR_TABS),
  EXCMD(CMD_tabedit,    "tabedit",      ex_splitview,
        EX_BANG|EX_FILE1|EX_RANGE|EX_ZEROR|EX_CMDARG|EX_ARGOPT|EX_TRLBAR,
***************
*** 1768,1774 ****
        EX_NEEDARG|EX_WORD1|EX_RANGE|EX_CMDWIN|EX_LOCK_OK,
        ADDR_OTHER),
  EXCMD(CMD_windo,      "windo",        ex_listdo,
!       EX_NEEDARG|EX_EXTRA|EX_NOTRLCOM|EX_RANGE|EX_DFLALL,
        ADDR_WINDOWS),
  EXCMD(CMD_winpos,     "winpos",       ex_winpos,
        EX_EXTRA|EX_TRLBAR|EX_CMDWIN|EX_LOCK_OK,
--- 1768,1774 ----
        EX_NEEDARG|EX_WORD1|EX_RANGE|EX_CMDWIN|EX_LOCK_OK,
        ADDR_OTHER),
  EXCMD(CMD_windo,      "windo",        ex_listdo,
!       EX_NEEDARG|EX_EXTRA|EX_NOTRLCOM|EX_RANGE|EX_DFLALL|EX_EXPAND,
        ADDR_WINDOWS),
  EXCMD(CMD_winpos,     "winpos",       ex_winpos,
        EX_EXTRA|EX_TRLBAR|EX_CMDWIN|EX_LOCK_OK,
*** ../vim-8.2.3682/src/testdir/test_vim9_cmd.vim       2021-11-23 
14:52:03.029446451 +0000
--- src/testdir/test_vim9_cmd.vim       2021-11-27 11:41:59.866570568 +0000
***************
*** 105,110 ****
--- 105,127 ----
    var files = ['file 1', 'file%2', 'file# 3']
    args `=files`
    assert_equal(files, argv())
+ 
+   filename = 'Xwindo'
+   windo edit `=filename`
+   assert_equal('Xwindo', bufname())
+ 
+   filename = 'Xtabdo'
+   tabdo edit `=filename`
+   assert_equal('Xtabdo', bufname())
+ 
+   filename = 'Xargdo'
+   argdo edit `=filename`
+   assert_equal('Xargdo', bufname())
+ 
+   :%bwipe!
+   filename = 'Xbufdo'
+   bufdo file `=filename`
+   assert_equal('Xbufdo', bufname())
  enddef
  
  def Test_expand_alternate_file()
*** ../vim-8.2.3682/src/version.c       2021-11-26 17:36:48.012799185 +0000
--- src/version.c       2021-11-27 11:16:30.812964740 +0000
***************
*** 759,760 ****
--- 759,762 ----
  {   /* Add new patch number below this line */
+ /**/
+     3683,
  /**/

-- 
JOHN CLEESE PLAYED: SECOND SOLDIER WITH A KEEN INTEREST IN BIRDS, LARGE MAN
                    WITH DEAD BODY, BLACK KNIGHT, MR NEWT (A VILLAGE
                    BLACKSMITH INTERESTED IN BURNING WITCHES), A QUITE
                    EXTRAORDINARILY RUDE FRENCHMAN, TIM THE WIZARD, SIR
                    LAUNCELOT
                 "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD

 /// Bram Moolenaar -- [email protected] -- http://www.Moolenaar.net   \\\
///                                                                      \\\
\\\        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ ///
 \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///

-- 
-- 
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 [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/vim_dev/20211127114329.BD4D71C01CC%40moolenaar.net.

Raspunde prin e-mail lui