Mercurial > vim
diff src/mbyte.c @ 17312:484424955bfa v8.1.1655
patch 8.1.1655: popup window border drawn wrong with multi-byte char
commit https://github.com/vim/vim/commit/3dabd718f4b2d8e09de9e2ec73832620b91c2f79
Author: Bram Moolenaar <Bram@vim.org>
Date: Mon Jul 8 23:30:22 2019 +0200
patch 8.1.1655: popup window border drawn wrong with multi-byte char
Problem: Popup window border drawn wrong with multi-byte char. (Marcin
Szamotulski)
Solution: Correct check in mb_fix_col(). (closes #4635)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Mon, 08 Jul 2019 23:45:04 +0200 |
parents | 49ef396af986 |
children | 8ae333756614 |
line wrap: on
line diff
--- a/src/mbyte.c +++ b/src/mbyte.c @@ -4266,14 +4266,18 @@ mb_lefthalve(int row, int col) int mb_fix_col(int col, int row) { + int off; + col = check_col(col); row = check_row(row); + off = LineOffset[row] + col; if (has_mbyte && ScreenLines != NULL && col > 0 && ((enc_dbcs - && ScreenLines[LineOffset[row] + col] != NUL + && ScreenLines[off] != NUL && dbcs_screen_head_off(ScreenLines + LineOffset[row], - ScreenLines + LineOffset[row] + col)) - || (enc_utf8 && ScreenLines[LineOffset[row] + col] == 0))) + ScreenLines + off)) + || (enc_utf8 && ScreenLines[off] == 0 + && ScreenLinesUC[off] == 0))) return col - 1; return col; }