@@ -4571,7 +4571,7 @@ win_line(wp, lnum, startrow, endrow, nochange)
45714571 int saved_nextra = n_extra ;
45724572
45734573#ifdef FEAT_CONCEAL
4574- if (( is_concealing || boguscols > 0 ) && vcol_off > 0 )
4574+ if (vcol_off > 0 )
45754575 /* there are characters to conceal */
45764576 tab_len += vcol_off ;
45774577 /* boguscols before FIX_FOR_BOGUSCOLS macro from above
@@ -4609,25 +4609,30 @@ win_line(wp, lnum, startrow, endrow, nochange)
46094609#ifdef FEAT_CONCEAL
46104610 /* n_extra will be increased by FIX_FOX_BOGUSCOLS
46114611 * macro below, so need to adjust for that here */
4612- if (( is_concealing || boguscols > 0 ) && vcol_off > 0 )
4612+ if (vcol_off > 0 )
46134613 n_extra -= vcol_off ;
46144614#endif
46154615 }
46164616#endif
46174617#ifdef FEAT_CONCEAL
4618- /* Tab alignment should be identical regardless of
4619- * 'conceallevel' value. So tab compensates of all
4620- * previous concealed characters, and thus resets vcol_off
4621- * and boguscols accumulated so far in the line. Note that
4622- * the tab can be longer than 'tabstop' when there
4623- * are concealed characters. */
4624- FIX_FOR_BOGUSCOLS ;
4625- /* Make sure, the highlighting for the tab char will be
4626- * correctly set further below (effectively reverts the
4627- * FIX_FOR_BOGSUCOLS macro */
4628- if (old_boguscols > 0 && n_extra > tab_len && wp -> w_p_list
4618+ {
4619+ int vc_saved = vcol_off ;
4620+
4621+ /* Tab alignment should be identical regardless of
4622+ * 'conceallevel' value. So tab compensates of all
4623+ * previous concealed characters, and thus resets
4624+ * vcol_off and boguscols accumulated so far in the
4625+ * line. Note that the tab can be longer than
4626+ * 'tabstop' when there are concealed characters. */
4627+ FIX_FOR_BOGUSCOLS ;
4628+
4629+ /* Make sure, the highlighting for the tab char will be
4630+ * correctly set further below (effectively reverts the
4631+ * FIX_FOR_BOGSUCOLS macro */
4632+ if (n_extra == tab_len + vc_saved && wp -> w_p_list
46294633 && lcs_tab1 )
4630- tab_len += n_extra - tab_len ;
4634+ tab_len += vc_saved ;
4635+ }
46314636#endif
46324637#ifdef FEAT_MBYTE
46334638 mb_utf8 = FALSE; /* don't draw as UTF-8 */
0 commit comments