From fb19aeeb33f76cd3b2fec9f62a22e01c212fb076 Mon Sep 17 00:00:00 2001 From: Björn Linse Date: Mon, 2 Sep 2019 04:38:50 +0200 Subject: 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. --- src/nvim/api/private/helpers.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'src') 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); -- cgit