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