Permalink
Browse files

updated for version 7.3.747

Problem:    When characters are concealed text aligned with tabs are no longer
	    aligned, e.g. at ":help :index".
Solution:   Compensate space for tabs for concealed characters. (Dominique
	    Pelle)
  • Loading branch information...
brammool committed Dec 5, 2012
1 parent 47db3af commit bcaafa4109598a9966a84d33b3cd844c0d8fc6e2
Showing with 16 additions and 1 deletion.
  1. +14 −1 src/screen.c
  2. +2 −0 src/version.c
View
@@ -4269,7 +4269,20 @@ win_line(wp, lnum, startrow, endrow, nochange)
{
/* tab amount depends on current column */
n_extra = (int)wp->w_buffer->b_p_ts
- - VCOL_HLC % (int)wp->w_buffer->b_p_ts - 1;
+ - vcol % (int)wp->w_buffer->b_p_ts - 1;
+#ifdef FEAT_CONCEAL
+ /* Tab alignment should be identical regardless of
+ * 'conceallevel' value. So tab compensates of all
+ * previous concealed characters, and thus resets vcol_off
+ * 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;
+#endif
#ifdef FEAT_MBYTE
mb_utf8 = FALSE; /* don't draw as UTF-8 */
#endif
View
@@ -725,6 +725,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
+/**/
+ 747,
/**/
746,
/**/

0 comments on commit bcaafa4

Please sign in to comment.