aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBjörn Linse <bjorn.linse@gmail.com>2019-09-02 04:38:50 +0200
committerJustin M. Keyes <justinkz@gmail.com>2019-09-01 19:38:50 -0700
commitfb19aeeb33f76cd3b2fec9f62a22e01c212fb076 (patch)
tree84d9f5fa59467b71c9a236469cb4c96912138c1c /src
parentb10d703213da5699a176c7791a51a322f248dbd2 (diff)
downloadrneovim-fb19aeeb33f76cd3b2fec9f62a22e01c212fb076.tar.gz
rneovim-fb19aeeb33f76cd3b2fec9f62a22e01c212fb076.tar.bz2
rneovim-fb19aeeb33f76cd3b2fec9f62a22e01c212fb076.zip
API: make nvim_win_set_option() set window-global, not buffer-local #9110
NB: the `!(flags & SOPT_GLOBAL)` exception is for 'statusline'. Because `:set statusline=...` sets the global value for _all_ windows, `:setlocal` is the best we can do there. This is a one-of-a-kind option that doesn't work like any other option.
Diffstat (limited to 'src')
-rw-r--r--src/nvim/api/private/helpers.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/nvim/api/private/helpers.c b/src/nvim/api/private/helpers.c
index 2e4874d7c6..26f388ae7e 100644
--- a/src/nvim/api/private/helpers.c
+++ b/src/nvim/api/private/helpers.c
@@ -394,7 +394,9 @@ void set_option_to(uint64_t channel_id, void *to, int type,
current_SID = channel_id == LUA_INTERNAL_CALL ? SID_LUA : SID_API_CLIENT;
current_channel_id = channel_id;
- const int opt_flags = (type == SREQ_GLOBAL) ? OPT_GLOBAL : OPT_LOCAL;
+ const int opt_flags = (type == SREQ_WIN && !(flags & SOPT_GLOBAL))
+ ? 0 : (type == SREQ_GLOBAL)
+ ? OPT_GLOBAL : OPT_LOCAL;
set_option_value_for(name.data, numval, stringval,
opt_flags, type, to, err);