aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorzeertzjq <zeertzjq@outlook.com>2023-09-05 20:03:25 +0800
committerGitHub <noreply@github.com>2023-09-05 20:03:25 +0800
commitc3e176f6e24e2b97603b59bb89b125d540e1274d (patch)
tree13b5ec7d1f1726743a3e727a7903acc2980f1575
parent6abc608445745e7e8def2aabf57c7a0c26b8a485 (diff)
downloadrneovim-c3e176f6e24e2b97603b59bb89b125d540e1274d.tar.gz
rneovim-c3e176f6e24e2b97603b59bb89b125d540e1274d.tar.bz2
rneovim-c3e176f6e24e2b97603b59bb89b125d540e1274d.zip
fix(options): correct condition for calling did_set_option() (#25026)
-rw-r--r--src/nvim/option.c2
-rw-r--r--test/functional/api/vim_spec.lua14
2 files changed, 15 insertions, 1 deletions
diff --git a/src/nvim/option.c b/src/nvim/option.c
index cc3a9c181d..ae4e7c1fda 100644
--- a/src/nvim/option.c
+++ b/src/nvim/option.c
@@ -3772,7 +3772,7 @@ static const char *set_option(int opt_idx, void *varp, OptVal *v, int opt_flags,
errbuf, errbuflen);
}
- if (errmsg != NULL) {
+ if (errmsg == NULL) {
did_set_option(opt_idx, opt_flags, true, value_checked);
}
diff --git a/test/functional/api/vim_spec.lua b/test/functional/api/vim_spec.lua
index 2de1990b14..f734bfb0c0 100644
--- a/test/functional/api/vim_spec.lua
+++ b/test/functional/api/vim_spec.lua
@@ -1416,6 +1416,20 @@ describe('API', function()
eq(true, status)
eq(' equalalways\n\tLast set from Lua', rv)
end)
+
+ it('updates whether the option has ever been set #25025', function()
+ eq(false, nvim('get_option_info2', 'autochdir', {}).was_set)
+ nvim('set_option_value', 'autochdir', true, {})
+ eq(true, nvim('get_option_info2', 'autochdir', {}).was_set)
+
+ eq(false, nvim('get_option_info2', 'cmdwinheight', {}).was_set)
+ nvim('set_option_value', 'cmdwinheight', 10, {})
+ eq(true, nvim('get_option_info2', 'cmdwinheight', {}).was_set)
+
+ eq(false, nvim('get_option_info2', 'debug', {}).was_set)
+ nvim('set_option_value', 'debug', 'beep', {})
+ eq(true, nvim('get_option_info2', 'debug', {}).was_set)
+ end)
end)
describe('nvim_get_option_value, nvim_set_option_value', function()