patch 9.0.0038: 'listchars' test fails
Problem: 'listchars' test fails.
Solution: Use window-local value after setting the global value
diff --git a/src/optionstr.c b/src/optionstr.c
index 43b7e50..1f9a0e5 100644
--- a/src/optionstr.c
+++ b/src/optionstr.c
@@ -1313,15 +1313,16 @@
tabpage_T *tp;
win_T *wp;
- // The current window is set to use the global 'listchars' value.
- // So clear the window-local value.
+ // If the current window is set to use the global 'listchars'
+ // value, clear the window-local value.
if (!(opt_flags & OPT_GLOBAL))
clear_string_option(&curwin->w_p_lcs);
FOR_ALL_TAB_WINDOWS(tp, wp)
+ // If the current window has a local value need to apply it
+ // again, it was changed when setting the global value.
// If no error was returned above, we don't expect an error
// here, so ignore the return value.
- if (*wp->w_p_lcs == NUL)
- (void)set_chars_option(wp, &wp->w_p_lcs);
+ (void)set_chars_option(wp, &wp->w_p_lcs);
redraw_all_later(NOT_VALID);
}
@@ -1339,15 +1340,16 @@
tabpage_T *tp;
win_T *wp;
- // The current window is set to use the global 'fillchars' value.
- // So clear the window-local value.
+ // If the current window is set to use the global 'fillchars'
+ // value clear the window-local value.
if (!(opt_flags & OPT_GLOBAL))
clear_string_option(&curwin->w_p_fcs);
FOR_ALL_TAB_WINDOWS(tp, wp)
+ // If the current window has a local value need to apply it
+ // again, it was changed when setting the global value.
// If no error was returned above, we don't expect an error
// here, so ignore the return value.
- if (*wp->w_p_fcs == NUL)
- (void)set_chars_option(wp, &wp->w_p_fcs);
+ (void)set_chars_option(wp, &wp->w_p_fcs);
redraw_all_later(NOT_VALID);
}