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 <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
zeertzjq
2025-11-20 20:35:12 +00:00
committed by Christian Brabandt
parent 6aac706232
commit d434f6c2a5
3 changed files with 19 additions and 2 deletions

View File

@ -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;

View File

@ -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

View File

@ -729,6 +729,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
1922,
/**/
1921,
/**/