mirror of
https://github.com/vim/vim.git
synced 2025-07-26 11:04:33 -04:00
patch 8.0.1388: char not overwritten with ambiguous width char
Problem: Char not overwritten with ambiguous width char, if the ambiguous char is single width but we reserve double-width space. Solution: First clear the screen cells. (Ozaki Kiichi, closes #2436)
This commit is contained in:
parent
a703aaee4d
commit
fae8ed1fc8
24
src/screen.c
24
src/screen.c
@ -8317,15 +8317,29 @@ screen_char(unsigned off, int row, int col)
|
|||||||
{
|
{
|
||||||
char_u buf[MB_MAXBYTES + 1];
|
char_u buf[MB_MAXBYTES + 1];
|
||||||
|
|
||||||
/* Convert UTF-8 character to bytes and write it. */
|
|
||||||
|
|
||||||
buf[utfc_char2bytes(off, buf)] = NUL;
|
|
||||||
|
|
||||||
out_str(buf);
|
|
||||||
if (utf_ambiguous_width(ScreenLinesUC[off]))
|
if (utf_ambiguous_width(ScreenLinesUC[off]))
|
||||||
|
{
|
||||||
|
if (*p_ambw == 'd'
|
||||||
|
# ifdef FEAT_GUI
|
||||||
|
&& !gui.in_use
|
||||||
|
# endif
|
||||||
|
)
|
||||||
|
{
|
||||||
|
/* Clear the two screen cells. If the character is actually
|
||||||
|
* single width it won't change the second cell. */
|
||||||
|
out_str((char_u *)" ");
|
||||||
|
term_windgoto(row, col);
|
||||||
|
}
|
||||||
|
/* not sure where the cursor is after drawing the ambiguous width
|
||||||
|
* character */
|
||||||
screen_cur_col = 9999;
|
screen_cur_col = 9999;
|
||||||
|
}
|
||||||
else if (utf_char2cells(ScreenLinesUC[off]) > 1)
|
else if (utf_char2cells(ScreenLinesUC[off]) > 1)
|
||||||
++screen_cur_col;
|
++screen_cur_col;
|
||||||
|
|
||||||
|
/* Convert the UTF-8 character to bytes and write it. */
|
||||||
|
buf[utfc_char2bytes(off, buf)] = NUL;
|
||||||
|
out_str(buf);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
#endif
|
#endif
|
||||||
|
@ -771,6 +771,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
1388,
|
||||||
/**/
|
/**/
|
||||||
1387,
|
1387,
|
||||||
/**/
|
/**/
|
||||||
|
Loading…
x
Reference in New Issue
Block a user