1
0
forked from aniani/vim

patch 9.0.0132: multi-byte characters in virtual text not handled correctly

Problem:    Multi-byte characters in virtual text not handled correctly.
Solution:   Count screen cells instead of bytes.
This commit is contained in:
Bram Moolenaar
2022-08-01 16:51:02 +01:00
parent 783ef7214b
commit 09ff4b54fb
7 changed files with 20 additions and 13 deletions

View File

@@ -1097,9 +1097,8 @@ win_lbr_chartabsize(
{
char_u *p = ((char_u **)wp->w_buffer->b_textprop_text.ga_data)[
-tp->tp_id - 1];
int len = (int)STRLEN(p);
int len = vim_strsize(p);
// TODO: count screen cells
if (tp->tp_col == MAXCOL)
{
// TODO: truncating
@@ -1454,8 +1453,9 @@ getvcol(
if (cursor != NULL)
{
#ifdef FEAT_PROP_POPUP
// cursor is after inserted text
vcol += cts.cts_cur_text_width;
if ((State & MODE_INSERT) == 0)
// cursor is after inserted text
vcol += cts.cts_cur_text_width;
#endif
if (*ptr == TAB
&& (State & MODE_NORMAL)