aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/screen.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/nvim/screen.c')
-rw-r--r--src/nvim/screen.c90
1 files changed, 45 insertions, 45 deletions
diff --git a/src/nvim/screen.c b/src/nvim/screen.c
index 2467cf192f..06c21f0e53 100644
--- a/src/nvim/screen.c
+++ b/src/nvim/screen.c
@@ -1451,10 +1451,10 @@ static void win_update(win_T *wp)
/*
* Display filler lines at the end of the file
*/
- if (char2cells(fill_diff) > 1)
+ if (char2cells(wp->w_p_fcs_chars.diff) > 1)
i = '-';
else
- i = fill_diff;
+ i = wp->w_p_fcs_chars.diff;
if (row + j > wp->w_grid.Rows) {
j = wp->w_grid.Rows - row;
}
@@ -1465,8 +1465,8 @@ static void win_update(win_T *wp)
wp->w_botline = lnum;
// make sure the rest of the screen is blank
- // write the 'fill_eob' character to rows that aren't part of the file.
- win_draw_end(wp, fill_eob, ' ', row, wp->w_grid.Rows, HLF_EOB);
+ // write the 'eob' character to rows that aren't part of the file.
+ win_draw_end(wp, wp->w_p_fcs_chars.eob, ' ', row, wp->w_grid.Rows, HLF_EOB);
}
if (wp->w_redr_type >= REDRAW_TOP) {
@@ -1817,7 +1817,7 @@ static void fold_line(win_T *wp, long fold_count, foldinfo_T *foldinfo, linenr_T
txtcol = col; /* remember where text starts */
- // 5. move the text to linebuf_char[off]. Fill up with "fill_fold".
+ // 5. move the text to linebuf_char[off]. Fill up with "fold".
// Right-left text is put in columns 0 - number-col, normal text is put
// in columns number-col - window-width.
int idx;
@@ -1849,7 +1849,7 @@ static void fold_line(win_T *wp, long fold_count, foldinfo_T *foldinfo, linenr_T
col -= txtcol;
schar_T sc;
- schar_from_char(sc, fill_fold);
+ schar_from_char(sc, wp->w_p_fcs_chars.fold);
while (col < wp->w_grid.Columns
- (wp->w_p_rl ? txtcol : 0)
) {
@@ -2057,10 +2057,10 @@ win_line (
char_u *p_extra_free = NULL; /* p_extra needs to be freed */
int c_extra = NUL; /* extra chars, all the same */
int extra_attr = 0; /* attributes when n_extra != 0 */
- static char_u *at_end_str = (char_u *)""; /* used for p_extra when
- displaying lcs_eol at end-of-line */
- int lcs_eol_one = lcs_eol; /* lcs_eol until it's been used */
- int lcs_prec_todo = lcs_prec; /* lcs_prec until it's been used */
+ static char_u *at_end_str = (char_u *)""; // used for p_extra when displaying
+ // curwin->w_p_lcs_chars.eol at end-of-line
+ int lcs_eol_one = wp->w_p_lcs_chars.eol; // 'eol' until it's been used
+ int lcs_prec_todo = wp->w_p_lcs_chars.prec; // 'prec' until it's been used
/* saved "extra" items for when draw_state becomes WL_LINE (again) */
int saved_n_extra = 0;
@@ -2432,11 +2432,11 @@ win_line (
}
if (wp->w_p_list) {
- if (lcs_space || lcs_trail) {
+ if (curwin->w_p_lcs_chars.space || wp->w_p_lcs_chars.trail) {
extra_check = true;
}
// find start of trailing whitespace
- if (lcs_trail) {
+ if (wp->w_p_lcs_chars.trail) {
trailcol = (colnr_T)STRLEN(ptr);
while (trailcol > (colnr_T)0 && ascii_iswhite(ptr[trailcol - 1])) {
trailcol--;
@@ -2793,10 +2793,10 @@ win_line (
draw_state = WL_SBR;
if (filler_todo > 0) {
/* Draw "deleted" diff line(s). */
- if (char2cells(fill_diff) > 1)
+ if (char2cells(wp->w_p_fcs_chars.diff) > 1)
c_extra = '-';
else
- c_extra = fill_diff;
+ c_extra = wp->w_p_fcs_chars.diff;
if (wp->w_p_rl) {
n_extra = col + 1;
} else {
@@ -3401,13 +3401,13 @@ win_line (
}
}
- // 'list': change char 160 to lcs_nbsp and space to lcs_space.
+ // 'list': change char 160 to 'nbsp' and space to 'space'.
if (wp->w_p_list
&& (((c == 160
|| (mb_utf8 && (mb_c == 160 || mb_c == 0x202f)))
- && lcs_nbsp)
- || (c == ' ' && lcs_space && ptr - line <= trailcol))) {
- c = (c == ' ') ? lcs_space : lcs_nbsp;
+ && curwin->w_p_lcs_chars.nbsp)
+ || (c == ' ' && curwin->w_p_lcs_chars.space && ptr - line <= trailcol))) {
+ c = (c == ' ') ? wp->w_p_lcs_chars.space : wp->w_p_lcs_chars.nbsp;
n_attr = 1;
extra_attr = win_hl_attr(wp, HLF_0);
saved_attr2 = char_attr; // save current attr
@@ -3422,7 +3422,7 @@ win_line (
}
if (trailcol != MAXCOL && ptr > line + trailcol && c == ' ') {
- c = lcs_trail;
+ c = wp->w_p_lcs_chars.trail;
n_attr = 1;
extra_attr = win_hl_attr(wp, HLF_0);
saved_attr2 = char_attr; // save current attr
@@ -3443,7 +3443,7 @@ win_line (
if (!vim_isprintc(c)) {
// when getting a character from the file, we may have to
// turn it into something else on the way to putting it on the screen.
- if (c == TAB && (!wp->w_p_list || lcs_tab1)) {
+ if (c == TAB && (!wp->w_p_list || wp->w_p_lcs_chars.tab1)) {
int tab_len = 0;
long vcol_adjusted = vcol; // removed showbreak length
// Only adjust the tab_len, when at the first column after the
@@ -3467,26 +3467,26 @@ win_line (
tab_len += vcol_off;
}
// boguscols before FIX_FOR_BOGUSCOLS macro from above.
- if (lcs_tab1 && old_boguscols > 0 && n_extra > tab_len) {
+ if (wp->w_p_lcs_chars.tab1 && old_boguscols > 0 && n_extra > tab_len) {
tab_len += n_extra - tab_len;
}
/* if n_extra > 0, it gives the number of chars to use for
* a tab, else we need to calculate the width for a tab */
- int len = (tab_len * mb_char2len(lcs_tab2));
+ int len = (tab_len * mb_char2len(wp->w_p_lcs_chars.tab2));
if (n_extra > 0) {
len += n_extra - tab_len;
}
- c = lcs_tab1;
+ c = wp->w_p_lcs_chars.tab1;
p = xmalloc(len + 1);
memset(p, ' ', len);
p[len] = NUL;
xfree(p_extra_free);
p_extra_free = p;
for (i = 0; i < tab_len; i++) {
- utf_char2bytes(lcs_tab2, p);
- p += mb_char2len(lcs_tab2);
- n_extra += mb_char2len(lcs_tab2) - (saved_nextra > 0 ? 1: 0);
+ utf_char2bytes(wp->w_p_lcs_chars.tab2, p);
+ p += mb_char2len(wp->w_p_lcs_chars.tab2);
+ n_extra += mb_char2len(wp->w_p_lcs_chars.tab2) - (saved_nextra > 0 ? 1: 0);
}
p_extra = p_extra_free;
@@ -3511,18 +3511,18 @@ win_line (
// Make sure, the highlighting for the tab char will be
// correctly set further below (effectively reverts the
// FIX_FOR_BOGSUCOLS macro.
- if (n_extra == tab_len + vc_saved && wp->w_p_list && lcs_tab1) {
+ if (n_extra == tab_len + vc_saved && wp->w_p_list && wp->w_p_lcs_chars.tab1) {
tab_len += vc_saved;
}
}
mb_utf8 = false; // don't draw as UTF-8
if (wp->w_p_list) {
- c = lcs_tab1;
+ c = wp->w_p_lcs_chars.tab1;
if (wp->w_p_lbr) {
c_extra = NUL; /* using p_extra from above */
} else {
- c_extra = lcs_tab2;
+ c_extra = wp->w_p_lcs_chars.tab2;
}
n_attr = tab_len + 1;
extra_attr = win_hl_attr(wp, HLF_0);
@@ -3563,8 +3563,8 @@ win_line (
c_extra = NUL;
}
}
- if (wp->w_p_list && lcs_eol > 0) {
- c = lcs_eol;
+ if (wp->w_p_list && wp->w_p_lcs_chars.eol > 0) {
+ c = wp->w_p_lcs_chars.eol;
} else {
c = ' ';
}
@@ -3634,8 +3634,8 @@ win_line (
c = match_conc;
} else if (syn_get_sub_char() != NUL) {
c = syn_get_sub_char();
- } else if (lcs_conceal != NUL) {
- c = lcs_conceal;
+ } else if (wp->w_p_lcs_chars.conceal != NUL) {
+ c = wp->w_p_lcs_chars.conceal;
} else {
c = ' ';
}
@@ -3705,7 +3705,7 @@ win_line (
&& filler_todo <= 0
&& draw_state > WL_NR
&& c != NUL) {
- c = lcs_prec;
+ c = wp->w_p_lcs_chars.prec;
lcs_prec_todo = NUL;
if (has_mbyte && (*mb_char2cells)(mb_c) > 1) {
/* Double-width character being overwritten by the "precedes"
@@ -3755,7 +3755,7 @@ win_line (
cur = cur->next;
}
}
- if (lcs_eol == lcs_eol_one
+ if (wp->w_p_lcs_chars.eol == lcs_eol_one
&& ((area_attr != 0 && vcol == fromcol
&& (VIsual_mode != Ctrl_V
|| lnum == VIsual.lnum
@@ -3858,7 +3858,7 @@ win_line (
// Make sure alignment is the same regardless
// if listchars=eol:X is used or not.
- bool delay_virttext = lcs_eol == lcs_eol_one && eol_hl_off == 0;
+ bool delay_virttext = wp->w_p_lcs_chars.eol == lcs_eol_one && eol_hl_off == 0;
if (wp->w_p_cuc) {
rightmost_vcol = wp->w_virtcol;
@@ -3979,14 +3979,14 @@ win_line (
}
/* line continues beyond line end */
- if (lcs_ext
+ if (wp->w_p_lcs_chars.ext
&& !wp->w_p_wrap
&& filler_todo <= 0
&& (wp->w_p_rl ? col == 0 : col == grid->Columns - 1)
&& (*ptr != NUL
|| (wp->w_p_list && lcs_eol_one > 0)
|| (n_extra && (c_extra != NUL || *p_extra != NUL)))) {
- c = lcs_ext;
+ c = wp->w_p_lcs_chars.ext;
char_attr = win_hl_attr(wp, HLF_AT);
mb_c = c;
if (enc_utf8 && utf_char2len(c) > 1) {
@@ -4164,7 +4164,7 @@ win_line (
if ((wp->w_p_rl ? (col < 0) : (col >= grid->Columns))
&& (*ptr != NUL
|| filler_todo > 0
- || (wp->w_p_list && lcs_eol != NUL && p_extra != at_end_str)
+ || (wp->w_p_list && wp->w_p_lcs_chars.eol != NUL && p_extra != at_end_str)
|| (n_extra != 0 && (c_extra != NUL || *p_extra != NUL)))
) {
bool wrap = wp->w_p_wrap // Wrapping enabled.
@@ -4226,7 +4226,7 @@ win_line (
saved_c_extra = c_extra;
saved_char_attr = char_attr;
n_extra = 0;
- lcs_prec_todo = lcs_prec;
+ lcs_prec_todo = wp->w_p_lcs_chars.prec;
if (filler_todo <= 0)
need_showbreak = TRUE;
--filler_todo;
@@ -6849,17 +6849,17 @@ static int fillchar_status(int *attr, win_T *wp)
bool is_curwin = (wp == curwin);
if (is_curwin) {
*attr = win_hl_attr(wp, HLF_S);
- fill = fill_stl;
+ fill = wp->w_p_fcs_chars.stl;
} else {
*attr = win_hl_attr(wp, HLF_SNC);
- fill = fill_stlnc;
+ fill = wp->w_p_fcs_chars.stlnc;
}
/* Use fill when there is highlighting, and highlighting of current
* window differs, or the fillchars differ, or this is not the
* current window */
if (*attr != 0 && ((win_hl_attr(wp, HLF_S) != win_hl_attr(wp, HLF_SNC)
|| !is_curwin || ONE_WINDOW)
- || (fill_stl != fill_stlnc))) {
+ || (wp->w_p_fcs_chars.stl != wp->w_p_fcs_chars.stlnc))) {
return fill;
}
if (is_curwin) {
@@ -6875,7 +6875,7 @@ static int fillchar_status(int *attr, win_T *wp)
static int fillchar_vsep(win_T *wp, int *attr)
{
*attr = win_hl_attr(wp, HLF_C);
- return fill_vert;
+ return wp->w_p_fcs_chars.vert;
}
/*
@@ -7003,7 +7003,7 @@ static void win_redr_ruler(win_T *wp, int always)
/* In list mode virtcol needs to be recomputed */
colnr_T virtcol = wp->w_virtcol;
- if (wp->w_p_list && lcs_tab1 == NUL) {
+ if (wp->w_p_list && wp->w_p_lcs_chars.tab1 == NUL) {
wp->w_p_list = FALSE;
getvvcol(wp, &wp->w_cursor, NULL, &virtcol, NULL);
wp->w_p_list = TRUE;