From 09ff4b54fb86a64390ba9c609853c6410ea6197c Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Mon, 1 Aug 2022 16:51:02 +0100 Subject: 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. --- src/charset.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'src/charset.c') diff --git a/src/charset.c b/src/charset.c index 2b657476df..c2137049b7 100644 --- a/src/charset.c +++ b/src/charset.c @@ -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) -- cgit v1.2.3