neovim

Neovim text editor
git clone https://git.dasho.dev/neovim.git
Log | Files | Refs | README

commit 0c24ddb4d82fd70621f458e799993bd0c385e08f
parent 4aac5908edaed3bb8779bfe810a799517e0101a7
Author: Jan Edmund Lazo <jan.lazo@mail.utoronto.ca>
Date:   Sun,  5 Oct 2025 12:55:48 -0400

vim-patch:8.2.0200: Vim9 script commands not sufficiently tested

Problem:    Vim9 script commands not sufficiently tested.
Solution:   Add more tests.  Fix storing global variable.  Make script
            variables work.

https://github.com/vim/vim/commit/b283a8a6802ef8a46b17cb439f9514840c03698f

Vim9 is N/A. Skip.

"set_vim_var_tv()" does not throw E1063 on type mismatch.
See https://github.com/neovim/neovim/pull/25394 .

Co-authored-by: Bram Moolenaar <Bram@vim.org>

Diffstat:
Msrc/nvim/eval.c | 10----------
Msrc/nvim/eval/vars.c | 11+++++++++++
2 files changed, 11 insertions(+), 10 deletions(-)

diff --git a/src/nvim/eval.c b/src/nvim/eval.c @@ -6597,16 +6597,6 @@ typval_T *get_vim_var_tv(const VimVarIndex idx) return &vimvars[idx].vv_tv; } -/// Set v:variable to tv. -/// -/// @param[in] idx Index of variable to set. -/// @param[in] val Value to set to. Will be copied. -void set_vim_var_tv(const VimVarIndex idx, typval_T *const tv) -{ - tv_clear(&vimvars[idx].vv_di.di_tv); - tv_copy(tv, &vimvars[idx].vv_di.di_tv); -} - /// Set the v:argv list. void set_argv_var(char **argv, int argc) { diff --git a/src/nvim/eval/vars.c b/src/nvim/eval/vars.c @@ -1527,6 +1527,17 @@ dict_T *get_vimvar_dict(void) return &vimvardict; } +/// Set v:variable to tv. +/// +/// @param[in] idx Index of variable to set. +/// @param[in] val Value to set to. Will be copied. +void set_vim_var_tv(const VimVarIndex idx, typval_T *const tv) +{ + typval_T *vv_tv = get_vim_var_tv(idx); + tv_clear(vv_tv); + tv_copy(tv, vv_tv); +} + /// Get number v: variable value. varnumber_T get_vim_var_nr(const VimVarIndex idx) FUNC_ATTR_PURE {