patch 9.0.0176: checking character options is duplicated and incomplete
Problem: Checking character options is duplicated and incomplete.
Solution: Move checking to check_chars_options(). (closes #10863)
diff --git a/src/screen.c b/src/screen.c
index 1f223f9..6929501 100644
--- a/src/screen.c
+++ b/src/screen.c
@@ -5155,3 +5155,28 @@
return NULL; // no error
}
+
+/*
+ * Check all global and local values of 'listchars' and 'fillchars'.
+ * Return an untranslated error messages if any of them is invalid, NULL
+ * otherwise.
+ */
+ char *
+check_chars_options(void)
+{
+ tabpage_T *tp;
+ win_T *wp;
+
+ if (set_chars_option(curwin, &p_lcs, FALSE) != NULL)
+ return e_conflicts_with_value_of_listchars;
+ if (set_chars_option(curwin, &p_fcs, FALSE) != NULL)
+ return e_conflicts_with_value_of_fillchars;
+ FOR_ALL_TAB_WINDOWS(tp, wp)
+ {
+ if (set_chars_option(wp, &wp->w_p_lcs, FALSE) != NULL)
+ return e_conflicts_with_value_of_listchars;
+ if (set_chars_option(wp, &wp->w_p_fcs, FALSE) != NULL)
+ return e_conflicts_with_value_of_fillchars;
+ }
+ return NULL;
+}