Mercurial > vim
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; }