From: zeertzjq Date: Thu, 20 Nov 2025 20:35:12 +0000 (+0000) Subject: patch 9.1.1922: Wrong virtcol('$') with virtual text at EOL X-Git-Tag: v9.1.1922^0 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=d434f6c2a571e1fda0582986c28a488e1dce8fff;p=thirdparty%2Fvim.git patch 9.1.1922: Wrong virtcol('$') with virtual text at EOL Problem: Wrong virtcol('$') with virtual text at EOL (rickhowe). Solution: Also add 1 to end virtcol when there is virtual text. (zeertzjq) fixes: #18761 closes: #18762 Signed-off-by: zeertzjq Signed-off-by: Christian Brabandt --- 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, /**/