patch 9.0.0036: 'fillchars' cannot have window-local values

Problem:    'fillchars' cannot have window-local values.
Solution:   Make 'fillchars' global-local. (closes #5206)
diff --git a/src/mbyte.c b/src/mbyte.c
index 3656880..1e3ef72 100644
--- a/src/mbyte.c
+++ b/src/mbyte.c
@@ -4229,8 +4229,7 @@
 #if defined(FEAT_GUI_GTK) || defined(FEAT_SPELL) || defined(PROTO)
 /*
  * Return TRUE if string "s" is a valid utf-8 string.
- * When "end" is NULL stop at the first NUL.
- * When "end" is positive stop there.
+ * When "end" is NULL stop at the first NUL.  Otherwise stop at "end".
  */
     int
 utf_valid_string(char_u *s, char_u *end)
@@ -5529,6 +5528,7 @@
     cw_interval_T   *table;
     cw_interval_T   *cw_table_save;
     size_t	    cw_table_size_save;
+    char	    *error = NULL;
 
     if (in_vim9script() && check_for_list_arg(argvars, 0) == FAIL)
 	return;
@@ -5648,30 +5648,36 @@
     // Check that the new value does not conflict with 'fillchars' or
     // 'listchars'.
     if (set_chars_option(curwin, &p_fcs) != NULL)
-    {
-	emsg(_(e_conflicts_with_value_of_fillchars));
-	cw_table = cw_table_save;
-	cw_table_size = cw_table_size_save;
-	vim_free(table);
-	return;
-    }
+	error = e_conflicts_with_value_of_fillchars;
+    else if (set_chars_option(curwin, &p_lcs) != NULL)
+	error = e_conflicts_with_value_of_listchars;
     else
     {
-	tabpage_T	*tp;
-	win_T	*wp;
+	tabpage_T   *tp;
+	win_T	    *wp;
 
 	FOR_ALL_TAB_WINDOWS(tp, wp)
 	{
 	    if (set_chars_option(wp, &wp->w_p_lcs) != NULL)
 	    {
-		emsg((e_conflicts_with_value_of_listchars));
-		cw_table = cw_table_save;
-		cw_table_size = cw_table_size_save;
-		vim_free(table);
-		return;
+		error = e_conflicts_with_value_of_listchars;
+		break;
+	    }
+	    if (set_chars_option(wp, &wp->w_p_fcs) != NULL)
+	    {
+		error = e_conflicts_with_value_of_fillchars;
+		break;
 	    }
 	}
     }
+    if (error != NULL)
+    {
+	emsg(_(error));
+	cw_table = cw_table_save;
+	cw_table_size = cw_table_size_save;
+	vim_free(table);
+	return;
+    }
 
     vim_free(cw_table_save);
 }