diff options
author | Bram Moolenaar <Bram@vim.org> | 2022-05-06 21:24:31 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2022-05-06 21:24:31 +0100 |
commit | a13e7acba9928a9c5e97be28946418d8d4323988 (patch) | |
tree | 1b78684d3b7e785eacf48a4a7e9a971519dfa6a5 | |
parent | d88934406c5375d88f8f1b65331c9f0cab68cc6c (diff) | |
download | vim-git-a13e7acba9928a9c5e97be28946418d8d4323988.tar.gz |
patch 8.2.4896: expression in command block does not look after NLv8.2.4896
Problem: Expression in command block does not look after NL when command is
typed.
Solution: Skip over NL also when not in a script. (closes #10358)
-rw-r--r-- | src/eval.c | 3 | ||||
-rw-r--r-- | src/testdir/test_usercommands.vim | 5 | ||||
-rw-r--r-- | src/version.c | 2 |
3 files changed, 9 insertions, 1 deletions
diff --git a/src/eval.c b/src/eval.c index 18e196f44..317446c76 100644 --- a/src/eval.c +++ b/src/eval.c @@ -2175,7 +2175,8 @@ eval_next_non_blank(char_u *arg, evalarg_T *evalarg, int *getnext) *getnext = FALSE; if (in_vim9script() && evalarg != NULL - && (evalarg->eval_cookie != NULL || evalarg->eval_cctx != NULL) + && (evalarg->eval_cookie != NULL || evalarg->eval_cctx != NULL + || *p == NL) && (*p == NUL || *p == NL || (vim9_comment_start(p) && VIM_ISWHITE(p[-1])))) { diff --git a/src/testdir/test_usercommands.vim b/src/testdir/test_usercommands.vim index 8c588c55e..3cb1c8b3f 100644 --- a/src/testdir/test_usercommands.vim +++ b/src/testdir/test_usercommands.vim @@ -705,6 +705,11 @@ func Test_usercmd_with_block() END call v9.CheckScriptSuccess(lines) call assert_equal('true', g:result) + unlet g:result + + call feedkeys(":EchoCond\<CR>", 'xt') + call assert_equal('true', g:result) + delcommand EchoCond unlet g:result diff --git a/src/version.c b/src/version.c index df306852f..d20ecf216 100644 --- a/src/version.c +++ b/src/version.c @@ -747,6 +747,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 4896, +/**/ 4895, /**/ 4894, |