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);
 	}