# HG changeset patch # User Bram Moolenaar # Date 1638013503 -3600 # Node ID ce891b60bdcd3df03a0d2c76217efcd94b6c763a # Parent bb2175e5ccee869baa5053a762ef26537571ed72 patch 8.2.3683: Vim9: cannot use in :...do commands Commit: https://github.com/vim/vim/commit/279d733dfb838cbabe88c8b8d3549d1493a49bbe Author: Bram Moolenaar Date: Sat Nov 27 11:42:50 2021 +0000 patch 8.2.3683: Vim9: cannot use in :...do commands Problem: Vim9: cannot use in :...do commands. Solution: Add EX_EXPAND to the commands. (closes https://github.com/vim/vim/issues/9232) diff --git a/src/ex_cmds.h b/src/ex_cmds.h --- a/src/ex_cmds.h +++ b/src/ex_cmds.h @@ -145,7 +145,7 @@ EXCMD(CMD_argdelete, "argdelete", ex_arg 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_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,7 +235,7 @@ EXCMD(CMD_buffers, "buffers", buflist_li 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_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,7 +301,7 @@ EXCMD(CMD_cd, "cd", ex_cd, 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_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,7 +313,7 @@ EXCMD(CMD_cfile, "cfile", ex_cfile, 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_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,7 +838,7 @@ EXCMD(CMD_lcscope, "lcscope", ex_cscope, 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_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,7 +859,7 @@ EXCMD(CMD_lfile, "lfile", ex_cfile, 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_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,7 +1534,7 @@ EXCMD(CMD_tabclose, "tabclose", ex_tabcl 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_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,7 +1768,7 @@ EXCMD(CMD_wincmd, "wincmd", ex_wincmd, 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_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, diff --git a/src/testdir/test_vim9_cmd.vim b/src/testdir/test_vim9_cmd.vim --- a/src/testdir/test_vim9_cmd.vim +++ b/src/testdir/test_vim9_cmd.vim @@ -105,6 +105,23 @@ def Test_edit_wildcards() 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() diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -758,6 +758,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 3683, +/**/ 3682, /**/ 3681,