mirror of
https://github.com/neovim/neovim.git
synced 2025-10-05 01:16:31 +00:00
vim-patch:8.2.2518: 'listchars' should be window-local
Problem: 'listchars' should be window-local.
Solution: Make 'listchars' global-local. (Yegappan Lakshmanan, Marco Hinz,
closes vim/vim#5206, closes vim/vim#7850)
eed9d46293
Nvim already has this feature, but it implements :set listchars the same
as :setglobal listchars, which is incorrect. Vim's implementation of
:set listchars is correct: using :set listchars clears local value.
This commit is contained in:
@@ -2650,14 +2650,19 @@ ambw_end:
|
||||
}
|
||||
s = skip_to_option_part(s);
|
||||
}
|
||||
} else if (varp == &p_lcs) { // 'listchars'
|
||||
} else if (varp == &p_lcs) { // global 'listchars'
|
||||
errmsg = set_chars_option(curwin, varp, false);
|
||||
if (!errmsg) {
|
||||
if (errmsg == NULL) {
|
||||
// The current window is set to use the global 'listchars' value.
|
||||
// So clear the window-local value.
|
||||
if (!(opt_flags & OPT_GLOBAL)) {
|
||||
clear_string_option(&curwin->w_p_lcs);
|
||||
}
|
||||
FOR_ALL_TAB_WINDOWS(tp, wp) {
|
||||
set_chars_option(wp, &wp->w_p_lcs, true);
|
||||
}
|
||||
redraw_all_later(NOT_VALID);
|
||||
}
|
||||
redraw_all_later(NOT_VALID);
|
||||
} else if (varp == &curwin->w_p_lcs) { // local 'listchars'
|
||||
errmsg = set_chars_option(curwin, varp, true);
|
||||
} else if (varp == &p_fcs) { // 'fillchars'
|
||||
|
Reference in New Issue
Block a user