diff options
author | Bram Moolenaar <Bram@vim.org> | 2017-03-01 18:04:05 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2017-03-01 18:04:05 +0100 |
commit | abc39ab642791ae3d22a524516eeedb673a95d9d (patch) | |
tree | 6a6bed7722af11198e5912daca94de5c9be60170 /src/screen.c | |
parent | 98e83b295628bc29bc67bcc1adb8ae75d01b8e07 (diff) | |
download | vim-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.c | 7 |
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; } |