0
0
mirror of https://github.com/vim/vim.git synced 2025-09-28 04:24:06 -04:00

patch 9.0.0157: 'showbreak' displayed below truncated "after" text prop

Problem:    'showbreak' displayed below truncated "after" text prop.
Solution:   Suppress 'showbreak' when "after" prop doesn't wrap.
This commit is contained in:
Bram Moolenaar
2022-08-06 21:03:53 +01:00
parent 3f74c0ab32
commit cba6952e34
5 changed files with 46 additions and 3 deletions

View File

@@ -1094,6 +1094,7 @@ win_lbr_chartabsize(
int tab_corr = (*s == TAB);
int n;
char_u *sbr;
int no_sbr = FALSE;
#endif
#if defined(FEAT_PROP_POPUP)
@@ -1155,7 +1156,7 @@ win_lbr_chartabsize(
if (tp->tp_col == MAXCOL)
{
int below = (tp->tp_flags & TP_FLAG_ALIGN_BELOW);
int wrap = (tp->tp_flags & TP_FLAG_WRAP);
int wrap = (tp->tp_flags & TP_FLAG_WRAP);
int len = (int)STRLEN(p);
int n_used = len;
@@ -1168,6 +1169,9 @@ win_lbr_chartabsize(
// "after"
if (below)
cells += wp->w_width - (vcol + size) % wp->w_width;
#ifdef FEAT_LINEBREAK
no_sbr = TRUE; // don't use 'showbreak' now
#endif
}
cts->cts_cur_text_width += cells;
size += cells;
@@ -1242,7 +1246,7 @@ win_lbr_chartabsize(
* Do not use 'showbreak' at the NUL after the text.
*/
added = 0;
sbr = c == NUL ? empty_option : get_showbreak_value(wp);
sbr = (c == NUL || no_sbr) ? empty_option : get_showbreak_value(wp);
if ((*sbr != NUL || wp->w_p_bri) && wp->w_p_wrap && vcol != 0)
{
colnr_T sbrlen = 0;