0
0
mirror of https://github.com/vim/vim.git synced 2025-09-23 03:43:49 -04:00

patch 8.1.2245: third character of 'listchars' tab shows in wrong place

Problem:    Third character of 'listchars' tab shows in wrong place when
            'breakindent' is set.
Solution:   Set c_final to NUL. (Naruhiko Nishino, closes #5165)
This commit is contained in:
Bram Moolenaar
2019-11-03 15:46:48 +01:00
parent 82cf7f6df7
commit 2f7b7b1e12
3 changed files with 45 additions and 2 deletions

View File

@@ -1173,6 +1173,7 @@ win_line(
# endif
p_extra = NULL;
c_extra = ' ';
c_final = NUL;
n_extra = get_breakindent_win(wp,
ml_get_buf(wp->w_buffer, lnum, FALSE));
// Correct end of highlighted area for 'breakindent',
@@ -1647,9 +1648,8 @@ win_line(
#ifdef FEAT_LINEBREAK
int c0;
#endif
VIM_CLEAR(p_extra_free);
if (p_extra_free != NULL)
VIM_CLEAR(p_extra_free);
// Get a character from the line itself.
c = *ptr;
#ifdef FEAT_LINEBREAK

View File

@@ -614,3 +614,44 @@ func Test_breakindent16_vartabs()
call s:compare_lines(expect, lines)
call s:close_windows('set vts&')
endfunc
func Test_breakindent17_vartabs()
if !has("vartabs")
return
endif
let s:input = ""
call s:test_windows('setl breakindent list listchars=tab:<-> showbreak=+++')
call setline(1, "\t" . repeat('a', 63))
vert resize 30
norm! 1gg$
redraw!
let lines = s:screen_lines(1, 30)
let expect = [
\ "<-->aaaaaaaaaaaaaaaaaaaaaaaaaa",
\ " +++aaaaaaaaaaaaaaaaaaaaaaa",
\ " +++aaaaaaaaaaaaaa ",
\ ]
call s:compare_lines(expect, lines)
call s:close_windows('set breakindent& list& listchars& showbreak&')
endfunc
func Test_breakindent18_vartabs()
if !has("vartabs")
return
endif
let s:input = ""
call s:test_windows('setl breakindent list listchars=tab:<->')
call setline(1, "\t" . repeat('a', 63))
vert resize 30
norm! 1gg$
redraw!
let lines = s:screen_lines(1, 30)
let expect = [
\ "<-->aaaaaaaaaaaaaaaaaaaaaaaaaa",
\ " aaaaaaaaaaaaaaaaaaaaaaaaaa",
\ " aaaaaaaaaaa ",
\ ]
call s:compare_lines(expect, lines)
call s:close_windows('set breakindent& list& listchars&')
endfunc

View File

@@ -741,6 +741,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
2245,
/**/
2244,
/**/