diff --git a/src/charset.c b/src/charset.c index 29936e7d9f..829ad37201 100644 --- a/src/charset.c +++ b/src/charset.c @@ -1702,8 +1702,7 @@ getvcol( { incr = 1; // NUL at end of line only takes one column #ifdef FEAT_PROP_POPUP - if (cts.cts_cur_text_width > 0) - incr = cts.cts_cur_text_width; + incr += cts.cts_cur_text_width; on_NUL = TRUE; #endif break; diff --git a/src/testdir/test_textprop.vim b/src/testdir/test_textprop.vim index d335752419..975a5846ac 100644 --- a/src/testdir/test_textprop.vim +++ b/src/testdir/test_textprop.vim @@ -4403,6 +4403,22 @@ func Test_text_eol_long_wrap_smoothscroll() call StopVimInTerminal(buf) endfunc +func Test_text_eol_virtcol() + new + call prop_type_add('test', #{highlight: 'ErrorMsg'}) + call setline(1, repeat(['1234567890'], 6)) + + for [ln, tx] in [[2, 'a'], [3, 'ab'], [4, 'abc'], [5, 'abcd'], [6, 'αβγ口']] + let co = col([ln, '$']) + call assert_equal(11, virtcol([ln, '$'])) + call prop_add(ln, co, #{type: 'test', text: tx}) + call assert_equal(11 + strwidth(tx), virtcol([ln, '$'])) + endfor + + bwipe! + call prop_type_delete('test') +endfunc + func Test_text_below_nowrap() CheckScreendump CheckRunVimInTerminal diff --git a/src/version.c b/src/version.c index 568aaab9aa..fe2371cb1d 100644 --- a/src/version.c +++ b/src/version.c @@ -729,6 +729,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 1922, /**/ 1921, /**/