changeset 29391:73fb9c6efc6d v9.0.0038

patch 9.0.0038: 'listchars' test fails Commit: https://github.com/vim/vim/commit/5ed26faace574f6b36744f9e17075d7e806aa877 Author: Bram Moolenaar <Bram@vim.org> Date: Mon Jul 4 18:05:51 2022 +0100 patch 9.0.0038: 'listchars' test fails Problem: 'listchars' test fails. Solution: Use window-local value after setting the global value
author Bram Moolenaar <Bram@vim.org>
date Mon, 04 Jul 2022 19:15:03 +0200
parents f85fcaede57f
children 86e54c1f931e
files src/optionstr.c src/version.c
diffstat 2 files changed, 12 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- a/src/optionstr.c
+++ b/src/optionstr.c
@@ -1313,15 +1313,16 @@ ambw_end:
 	    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 @@ ambw_end:
 	    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);
 	}
--- a/src/version.c
+++ b/src/version.c
@@ -736,6 +736,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    38,
+/**/
     37,
 /**/
     36,