# HG changeset patch # User Bram Moolenaar # Date 1373711815 -7200 # Node ID 42d592dbbec3706429e3f3f75c9c394db6b9c1bd # Parent ab94d7d4b272e82285d5e6728b92aa86b1544165 updated for version 7.4a.013 Problem: Setting/resetting 'lbr' in the main help file changes alignment after a Tab. (Dimitar Dimitrov) Solution: Also use the code for conceal mode where n_extra is computed for 'lbr'. diff --git a/src/screen.c b/src/screen.c --- a/src/screen.c +++ b/src/screen.c @@ -2997,6 +2997,14 @@ win_line(wp, lnum, startrow, endrow, noc int vcol_off = 0; /* offset for concealed characters */ int did_wcol = FALSE; # define VCOL_HLC (vcol - vcol_off) +# define FIX_FOR_BOGUSCOLS \ + { \ + n_extra += vcol_off; \ + vcol -= vcol_off; \ + vcol_off = 0; \ + col -= boguscols; \ + boguscols = 0; \ + } #else # define VCOL_HLC (vcol) #endif @@ -4404,7 +4412,14 @@ win_line(wp, lnum, startrow, endrow, noc 1), (colnr_T)vcol, NULL) - 1; c_extra = ' '; if (vim_iswhite(c)) + { +#ifdef FEAT_CONCEAL + if (c == TAB) + /* See "Tab alignment" below. */ + FIX_FOR_BOGUSCOLS; +#endif c = ' '; + } } #endif @@ -4453,11 +4468,7 @@ win_line(wp, lnum, startrow, endrow, noc * and boguscols accumulated so far in the line. Note that * the tab can be longer than 'tabstop' when there * are concealed characters. */ - n_extra += vcol_off; - vcol -= vcol_off; - vcol_off = 0; - col -= boguscols; - boguscols = 0; + FIX_FOR_BOGUSCOLS; #endif #ifdef FEAT_MBYTE mb_utf8 = FALSE; /* don't draw as UTF-8 */ diff --git a/src/testdir/test88.in b/src/testdir/test88.in --- a/src/testdir/test88.in +++ b/src/testdir/test88.in @@ -68,6 +68,9 @@ GGk GGk :normal $ GGk +:set lbr +:normal $ +GGk :" Display result. :call append('$', 'end:') :call append('$', positions) diff --git a/src/testdir/test88.ok b/src/testdir/test88.ok --- a/src/testdir/test88.ok +++ b/src/testdir/test88.ok @@ -21,3 +21,4 @@ 9:9 9:17 9:25 9:26 +9:26 diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -728,6 +728,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 13, +/**/ 12, /**/ 11,