Mercurial > vim
diff src/vim9compile.c @ 26358:80b555c4aed0 v8.2.3710
patch 8.2.3710: Vim9: backtick expression expanded for :global
Commit: https://github.com/vim/vim/commit/3d2e031d4f0e1559e4a4f99de5eb2330f38f8eb5
Author: Bram Moolenaar <Bram@vim.org>
Date: Wed Dec 1 09:27:20 2021 +0000
patch 8.2.3710: Vim9: backtick expression expanded for :global
Problem: Vim9: backtick expression expanded for :global.
Solution: Check the following command.
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Wed, 01 Dec 2021 10:30:06 +0100 |
parents | 0884f2be6c2a |
children | a5dac0a9aa5f |
line wrap: on
line diff
--- a/src/vim9compile.c +++ b/src/vim9compile.c @@ -9070,6 +9070,7 @@ compile_exec(char_u *line_arg, exarg_T * int has_expr = FALSE; char_u *nextcmd = (char_u *)""; char_u *tofree = NULL; + char_u *cmd_arg = NULL; if (cctx->ctx_skip == SKIP_YES) goto theend; @@ -9172,20 +9173,20 @@ compile_exec(char_u *line_arg, exarg_T * p = skip_regexp_ex(eap->arg + 1, delim, TRUE, NULL, NULL, NULL); if (*p == delim) - { - eap->arg = p + 1; - has_expr = TRUE; - } + cmd_arg = p + 1; } if (eap->cmdidx == CMD_folddoopen || eap->cmdidx == CMD_folddoclosed) + cmd_arg = eap->arg; + + if (cmd_arg != NULL) { exarg_T nea; CLEAR_FIELD(nea); - nea.cmd = eap->arg; + nea.cmd = cmd_arg; p = find_ex_command(&nea, NULL, lookup_scriptitem, NULL); - if (nea.cmdidx <= CMD_SIZE) + if (nea.cmdidx < CMD_SIZE) { has_expr = excmd_get_argt(nea.cmdidx) & (EX_XFILE | EX_EXPAND); if (has_expr)