To: vim_dev@googlegroups.com Subject: Patch 8.2.3683 Fcc: outbox From: Bram Moolenaar Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ------------ 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 -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ /// \\\ \\\ sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ /// \\\ help me help AIDS victims -- http://ICCF-Holland.org ///