patch 8.2.2518: 'listchars' should be window-local
Problem: 'listchars' should be window-local.
Solution: Make 'listchars' global-local. (Yegappan Lakshmanan, Marco Hinz,
closes #5206, closes #7850)
diff --git a/src/structs.h b/src/structs.h
index 7bcbc38..0ca9203 100644
--- a/src/structs.h
+++ b/src/structs.h
@@ -225,6 +225,8 @@
#endif
int wo_list;
#define w_p_list w_onebuf_opt.wo_list // 'list'
+ char_u *wo_lcs;
+#define w_p_lcs w_onebuf_opt.wo_lcs // 'listchars'
int wo_nu;
#define w_p_nu w_onebuf_opt.wo_nu // 'number'
int wo_rnu;
@@ -3333,6 +3335,26 @@
#endif
/*
+ * Characters from the 'listchars' option
+ */
+typedef struct
+{
+ int eol;
+ int ext;
+ int prec;
+ int nbsp;
+ int space;
+ int tab1;
+ int tab2;
+ int tab3;
+ int trail;
+ int lead;
+#ifdef FEAT_CONCEAL
+ int conceal;
+#endif
+} lcs_chars_T;
+
+/*
* Structure which contains all information that belongs to a window
*
* All row numbers are relative to the start of the window, except w_winrow.
@@ -3380,6 +3402,8 @@
colnr_T w_old_visual_col; // last known start of visual part
colnr_T w_old_curswant; // last known value of Curswant
+ lcs_chars_T w_lcs_chars; // 'listchars' characters
+
/*
* "w_topline", "w_leftcol" and "w_skipcol" specify the offsets for
* displaying the buffer.