summaryrefslogtreecommitdiff
path: root/src/screen.c
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2017-03-01 18:04:05 +0100
committerBram Moolenaar <Bram@vim.org>2017-03-01 18:04:05 +0100
commitabc39ab642791ae3d22a524516eeedb673a95d9d (patch)
tree6a6bed7722af11198e5912daca94de5c9be60170 /src/screen.c
parent98e83b295628bc29bc67bcc1adb8ae75d01b8e07 (diff)
downloadvim-git-abc39ab642791ae3d22a524516eeedb673a95d9d.tar.gz
patch 8.0.0394: tabs are not aligned when scrolling horizontallyv8.0.0394
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.
Diffstat (limited to 'src/screen.c')
-rw-r--r--src/screen.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/screen.c b/src/screen.c
index 8514f3e38..20a778a68 100644
--- a/src/screen.c
+++ b/src/screen.c
@@ -3429,10 +3429,13 @@ win_line(
#else
--ptr;
#endif
+ /* If the character fits on the screen, don't need to skip it.
+ * Except for a TAB. */
+ if ((
#ifdef FEAT_MBYTE
- /* character fits on the screen, don't need to skip it */
- if ((*mb_ptr2cells)(ptr) >= c && col == 0)
+ (*mb_ptr2cells)(ptr) >= c ||
#endif
+ *ptr == TAB) && col == 0)
n_skip = v - vcol;
}