updated for version 7.4.388
Problem: With 'linebreak' set and 'list' unset a Tab is not counted
properly. (Kent Sibilev)
Solution: Check the 'list' option. (Christian Brabandt)
diff --git a/src/screen.c b/src/screen.c
index abbd911..188b36f 100644
--- a/src/screen.c
+++ b/src/screen.c
@@ -4494,7 +4494,7 @@
tab_len = (int)wp->w_buffer->b_p_ts
- vcol % (int)wp->w_buffer->b_p_ts - 1;
#ifdef FEAT_LINEBREAK
- if (!wp->w_p_lbr)
+ if (!wp->w_p_lbr || !wp->w_p_list)
#endif
/* tab amount depends on current column */
n_extra = tab_len;
diff --git a/src/testdir/test_listlbr_utf8.in b/src/testdir/test_listlbr_utf8.in
index f8888d5..ba12ada 100644
--- a/src/testdir/test_listlbr_utf8.in
+++ b/src/testdir/test_listlbr_utf8.in
@@ -30,11 +30,22 @@
:redraw!
:let line=ScreenChar(winwidth(0))
:call DoRecordScreen()
+:"
:let g:test ="Test 2: set nolinebreak list"
:set list nolinebreak
:redraw!
:let line=ScreenChar(winwidth(0))
:call DoRecordScreen()
+:"
+:let g:test ="Test 3: set linebreak nolist"
+:$put =\"\t*mask = nil;\"
+:$
+:norm! zt
+:set nolist linebreak
+:redraw!
+:let line=ScreenChar(winwidth(0))
+:call DoRecordScreen()
+:"
:%w! test.out
:qa!
ENDTEST
diff --git a/src/testdir/test_listlbr_utf8.ok b/src/testdir/test_listlbr_utf8.ok
index 576ccfb..634cf39 100644
--- a/src/testdir/test_listlbr_utf8.ok
+++ b/src/testdir/test_listlbr_utf8.ok
@@ -12,3 +12,10 @@
+pqrstuvwxyz␣1060ABC
+DEFGHIJKLMNOPˑ¶
¶
+ *mask = nil;
+
+Test 3: set linebreak nolist
+ *mask = nil;
+~
+~
+~
diff --git a/src/version.c b/src/version.c
index 33bcfba..d80a08a 100644
--- a/src/version.c
+++ b/src/version.c
@@ -735,6 +735,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 388,
+/**/
387,
/**/
386,