From 895d966e341c187ffcf9da88dba193cbfcebf000 Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Thu, 31 Jan 2019 21:57:21 +0100 Subject: patch 8.1.0865: when 'listchars' only contains "nbsp:X" it does not work Problem: When 'listchars' only contains "nbsp:X" it does not work. Solution: Set extra_check when lcs_nbsp is set. (Ralf Schandl, closes #3889) --- src/screen.c | 6 +++--- src/testdir/test_listchars.vim | 20 ++++++++++++++++++++ src/version.c | 2 ++ 3 files changed, 25 insertions(+), 3 deletions(-) diff --git a/src/screen.c b/src/screen.c index 1370773f8..caf6e2c8b 100644 --- a/src/screen.c +++ b/src/screen.c @@ -1164,8 +1164,6 @@ win_update(win_T *wp) mod_bot = wp->w_redraw_bot + 1; else mod_bot = 0; - wp->w_redraw_top = 0; /* reset for next time */ - wp->w_redraw_bot = 0; if (buf->b_mod_set) { if (mod_top == 0 || mod_top > buf->b_mod_top) @@ -1277,6 +1275,8 @@ win_update(win_T *wp) if (mod_top != 0 && buf->b_mod_xlines != 0 && wp->w_p_nu) mod_bot = MAXLNUM; } + wp->w_redraw_top = 0; // reset for next time + wp->w_redraw_bot = 0; /* * When only displaying the lines at the top, set top_end. Used when @@ -3498,7 +3498,7 @@ win_line( if (wp->w_p_list) { - if (lcs_space || lcs_trail) + if (lcs_space || lcs_trail || lcs_nbsp) extra_check = TRUE; /* find start of trailing whitespace */ if (lcs_trail) diff --git a/src/testdir/test_listchars.vim b/src/testdir/test_listchars.vim index 4899f5991..2870f2d4e 100644 --- a/src/testdir/test_listchars.vim +++ b/src/testdir/test_listchars.vim @@ -90,6 +90,26 @@ func Test_listchars() \ '.....h>-$', \ 'iii<<<<><<$', '$'], l) + + " test nbsp + normal ggdG + set listchars=nbsp:X,trail:Y + set list + " Non-breaking space + let nbsp = nr2char(0xa0) + call append(0, [ ">".nbsp."<" ]) + + let expected = '>X< ' + + redraw! + call cursor(1, 1) + call assert_equal([expected], ScreenLines(1, virtcol('$'))) + + set listchars=nbsp:X + redraw! + call cursor(1, 1) + call assert_equal([expected], ScreenLines(1, virtcol('$'))) + enew! set listchars& ff& endfunc diff --git a/src/version.c b/src/version.c index 7a02fbdca..1bedce165 100644 --- a/src/version.c +++ b/src/version.c @@ -783,6 +783,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 865, /**/ 864, /**/ -- cgit v1.2.1