# HG changeset patch # User Bram Moolenaar # Date 1406731462 -7200 # Node ID 76e7fb736c0e9d06b97ff95ee8baad1fb09d420b # Parent 216bda57abaa37d70a68f363d478647fd1c1ac87 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 --- a/src/screen.c +++ b/src/screen.c @@ -4494,7 +4494,7 @@ win_line(wp, lnum, startrow, endrow, noc 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 --- a/src/testdir/test_listlbr_utf8.in +++ b/src/testdir/test_listlbr_utf8.in @@ -30,11 +30,22 @@ STARTTEST :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 --- a/src/testdir/test_listlbr_utf8.ok +++ b/src/testdir/test_listlbr_utf8.ok @@ -12,3 +12,10 @@ Test 2: set nolinebreak list +pqrstuvwxyz␣1060ABC +DEFGHIJKLMNOPˑ¶ ¶ + *mask = nil; + +Test 3: set linebreak nolist + *mask = nil; +~ +~ +~ diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -735,6 +735,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 388, +/**/ 387, /**/ 386,