diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/nvim/option.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/nvim/option.c b/src/nvim/option.c index 673c6280d3..0002329da3 100644 --- a/src/nvim/option.c +++ b/src/nvim/option.c @@ -794,10 +794,14 @@ static void do_set_num(int opt_idx, int opt_flags, char **argp, int nextchar, co if (nextchar == '&') { value = (long)(intptr_t)options[opt_idx].def_val; } else if (nextchar == '<') { - // For 'undolevels' NO_LOCAL_UNDOLEVEL means to - // use the global value. if ((long *)varp == &curbuf->b_p_ul && opt_flags == OPT_LOCAL) { + // for 'undolevels' NO_LOCAL_UNDOLEVEL means using the global value value = NO_LOCAL_UNDOLEVEL; + } else if (opt_flags == OPT_LOCAL + && ((long *)varp == &curwin->w_p_siso + || (long *)varp == &curwin->w_p_so)) { + // for 'scrolloff'/'sidescrolloff' -1 means using the global value + value = -1; } else { value = *(long *)get_varp_scope(&(options[opt_idx]), OPT_GLOBAL); } |