diff src/screen.c @ 11010:c004e17fa36b v8.0.0394

patch 8.0.0394: tabs are not aligned when scrolling horizontally commit https://github.com/vim/vim/commit/abc39ab642791ae3d22a524516eeedb673a95d9d Author: Bram Moolenaar <Bram@vim.org> Date: Wed Mar 1 18:04:05 2017 +0100 patch 8.0.0394: tabs are not aligned when scrolling horizontally Problem: Tabs are not aligned when scrolling horizontally and a Tab doesn't fit. (Axel Bender) Solution: Handle a Tab as a not fitting character. (Christian Brabandt) Also fix that ":redraw" does not scroll horizontally to show the cursor. And fix the test that depended on the old behavior.
author Christian Brabandt <cb@256bit.org>
date Wed, 01 Mar 2017 18:15:04 +0100
parents b5de553d6062
children 7c7e496e625d
line wrap: on
line diff
--- a/src/screen.c
+++ b/src/screen.c
@@ -3429,10 +3429,13 @@ win_line(
 #else
 	    --ptr;
 #endif
-#ifdef FEAT_MBYTE
-           /* character fits on the screen, don't need to skip it */
-           if ((*mb_ptr2cells)(ptr) >= c && col == 0)
-#endif
+	    /* If the character fits on the screen, don't need to skip it.
+	     * Except for a TAB. */
+	    if ((
+#ifdef FEAT_MBYTE
+			(*mb_ptr2cells)(ptr) >= c ||
+#endif
+		       *ptr == TAB) && col == 0)
 	       n_skip = v - vcol;
 	}