1
0
forked from aniani/vim

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)
This commit is contained in:
Bram Moolenaar
2019-07-08 23:30:22 +02:00
parent 8a7383b6d2
commit 3dabd718f4
4 changed files with 30 additions and 3 deletions

View File

@@ -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;
}