diff options
author | Bram Moolenaar <Bram@vim.org> | 2022-05-06 14:29:09 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2022-05-06 14:29:09 +0100 |
commit | bc6f2bf78af28c93b48906408756b797ab2fd7bd (patch) | |
tree | 444839f967a56340f95411c85b63cd2537240a16 /src/ex_docmd.c | |
parent | f1d63b9cba9ca91d6367615c6098761c30c6cb5b (diff) |
patch 8.2.4886: Vim9: redir in skipped block seen as assignmentv8.2.4886
Problem: Vim9: redir in skipped block seen as assignment.
Solution: Check for valid assignment.
Diffstat (limited to 'src/ex_docmd.c')
-rw-r--r-- | src/ex_docmd.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/ex_docmd.c b/src/ex_docmd.c index f78e4edf25..26acc07e0f 100644 --- a/src/ex_docmd.c +++ b/src/ex_docmd.c @@ -3683,6 +3683,7 @@ find_ex_command( // "&opt = expr" // "var = expr" where "var" is a variable name or we are skipping // (variable declaration might have been skipped). + // Not "redir => var" (when skipping). oplen = assignment_len(skipwhite(p), &heredoc); if (oplen > 0) { @@ -3690,7 +3691,8 @@ find_ex_command( || *eap->cmd == '&' || *eap->cmd == '$' || *eap->cmd == '@' - || eap->skip + || (eap->skip && IS_WHITE_OR_NUL( + *(skipwhite(p) + oplen))) || lookup(eap->cmd, p - eap->cmd, TRUE, cctx) == OK) { eap->cmdidx = CMD_var; |