mirror of
https://github.com/vim/vim.git
synced 2025-09-24 03:44:06 -04:00
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'.
This commit is contained in:
21
src/screen.c
21
src/screen.c
@@ -2997,6 +2997,14 @@ win_line(wp, lnum, startrow, endrow, nochange)
|
||||
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, nochange)
|
||||
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, nochange)
|
||||
* 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 */
|
||||
|
Reference in New Issue
Block a user