diff options
author | Famiu Haque <famiuhaque@proton.me> | 2023-10-14 22:19:11 +0600 |
---|---|---|
committer | Famiu Haque <famiuhaque@proton.me> | 2023-10-30 21:38:02 +0600 |
commit | e19cc9c9b715d8171f7940632b8855104b5290b6 (patch) | |
tree | ce65d9beead39176451840b631556eabe7e5a0b3 /src/nvim/eval.c | |
parent | 8405649f92a8a8eb254944eca15e8b0169cbb6fb (diff) | |
download | rneovim-e19cc9c9b715d8171f7940632b8855104b5290b6.tar.gz rneovim-e19cc9c9b715d8171f7940632b8855104b5290b6.tar.bz2 rneovim-e19cc9c9b715d8171f7940632b8855104b5290b6.zip |
refactor(options)!: unify `set_option` and `set_string_option`
While the interfaces for setting number and boolean options are now unified by #25394, there is still a separate `set_string_option` function that is used for setting a string option. This PR removes that function and merges it with set_option.
BREAKING CHANGE: `v:option_old` is now the old global value for all global-local options, instead of just string global-local options. Local value for a global-local number/boolean option is now unset when the option is set (e.g. using `:set` or `nvim_set_option_value`) without a scope, which means they now behave the same way as string options.
Ref: #25672
Diffstat (limited to 'src/nvim/eval.c')
-rw-r--r-- | src/nvim/eval.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/src/nvim/eval.c b/src/nvim/eval.c index 20d76334f6..8ffc6fd179 100644 --- a/src/nvim/eval.c +++ b/src/nvim/eval.c @@ -7229,12 +7229,11 @@ void set_vim_var_dict(const VimVarIndex idx, dict_T *const val) /// Set v:variable to tv. /// /// @param[in] idx Index of variable to set. -/// @param[in,out] val Value to set to. Reference count will be incremented. -/// Also keys of the dictionary will be made read-only. +/// @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); - vimvars[idx].vv_di.di_tv = *tv; + tv_copy(tv, &vimvars[idx].vv_di.di_tv); } /// Set the v:argv list. |