vim-patch:9.0.0210: 'list' mode does not work properly with virtual text

Problem:    'list' mode does not work properly with virtual text.
Solution:   Show the "$" at the right position. (closes vim/vim#10913)

c3a483fc3c (diff-15009492c2b1d0a2629908b4618ad51c99d16746f238a0e6451dfe32355ed32fR1653)

This commit only contains the seemingly refactored portion (not entirely
sure what it does)

Co-authored-by: Bram Moolenaar <Bram@vim.org>
This commit is contained in:
Ibby 2023-04-01 15:04:49 +11:00 committed by bfredl
parent a37c990483
commit 584319cb03

View File

@ -2482,15 +2482,11 @@ int win_line(win_T *wp, linenr_T lnum, int startrow, int endrow, bool nochange,
&& wlv.line_attr == 0
&& wlv.line_attr_lowprio == 0) {
// In virtualedit, visual selections may extend beyond end of line
if (area_highlighting && virtual_active()
&& wlv.tocol != MAXCOL && wlv.vcol < wlv.tocol) {
wlv.n_extra = 0;
} else {
if (!(area_highlighting && virtual_active()
&& wlv.tocol != MAXCOL && wlv.vcol < wlv.tocol)) {
wlv.p_extra = at_end_str;
wlv.n_extra = 1;
wlv.c_extra = NUL;
wlv.c_final = NUL;
}
wlv.n_extra = 0;
}
if (wp->w_p_list && wp->w_p_lcs_chars.eol > 0) {
c = wp->w_p_lcs_chars.eol;
@ -2867,7 +2863,7 @@ int win_line(win_T *wp, linenr_T lnum, int startrow, int endrow, bool nochange,
&& !has_fold
&& (*ptr != NUL
|| lcs_eol_one > 0
|| (wlv.n_extra && (wlv.c_extra != NUL || *wlv.p_extra != NUL)))) {
|| (wlv.n_extra > 0 && (wlv.c_extra != NUL || *wlv.p_extra != NUL)))) {
c = wp->w_p_lcs_chars.ext;
wlv.char_attr = win_hl_attr(wp, HLF_AT);
mb_c = c;