diff options
author | zeertzjq <zeertzjq@outlook.com> | 2023-04-14 07:22:01 +0800 |
---|---|---|
committer | zeertzjq <zeertzjq@outlook.com> | 2023-04-14 09:23:40 +0800 |
commit | bd83b587b18bb6f2ac555a992fa5b7d907de7e79 (patch) | |
tree | abb4200b782b5ce998e660613bb3ee89aa01a211 /src/nvim/ex_eval.c | |
parent | f64f6706e58061f0a3de530edd1f10e331cd1525 (diff) | |
download | rneovim-bd83b587b18bb6f2ac555a992fa5b7d907de7e79.tar.gz rneovim-bd83b587b18bb6f2ac555a992fa5b7d907de7e79.tar.bz2 rneovim-bd83b587b18bb6f2ac555a992fa5b7d907de7e79.zip |
vim-patch:8.2.1047: Vim9: script cannot use line continuation like :def function
Problem: Vim9: script cannot use line continuation like in a :def function.
Solution: Pass the getline function pointer to the eval() functions. Use it
for addition and multiplication operators.
https://github.com/vim/vim/commit/5409f5d8c95007216ae1190565a7a8ee9ebd7100
Omit source_nextline() and eval_next_non_blank(): Vim9 script only.
N/A patches for version.c:
vim-patch:8.2.1048: build failure without the eval feature
Problem: Build failure without the eval feature.
Solution: Add dummy typedef.
https://github.com/vim/vim/commit/9d40c63c7dc8c3eb3886c58dcd334bc7f37eceba
vim-patch:8.2.1052: build failure with older compilers
Problem: Build failure with older compilers.
Solution: Move declaration to start of block.
https://github.com/vim/vim/commit/7acde51832f383f9a6d2e740cd0420b433ea841a
Co-authored-by: Bram Moolenaar <Bram@vim.org>
Diffstat (limited to 'src/nvim/ex_eval.c')
-rw-r--r-- | src/nvim/ex_eval.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/nvim/ex_eval.c b/src/nvim/ex_eval.c index 6772b78c33..33b315c179 100644 --- a/src/nvim/ex_eval.c +++ b/src/nvim/ex_eval.c @@ -792,8 +792,11 @@ void report_discard_pending(int pending, void *value) void ex_eval(exarg_T *eap) { typval_T tv; - - if (eval0(eap->arg, &tv, &eap->nextcmd, eap->skip ? 0 : EVAL_EVALUATE) == OK) { + evalarg_T evalarg = { + .eval_flags = eap->skip ? 0 : EVAL_EVALUATE, + .eval_cookie = eap->getline == getsourceline ? eap->cookie : NULL, + }; + if (eval0(eap->arg, &tv, &eap->nextcmd, &evalarg) == OK) { tv_clear(&tv); } } |