patch 9.0.1802: Multiline regex with Visual selection fails with virtual text
Problem: Multiline regex with Visual selection fails when Visual
selection contains virtual text after last char.
Solution: Only include virtual text after last char when getting full
line length.
closes: #12908
Signed-off-by: Christian Brabandt <cb@256bit.org>
Co-authored-by: zeertzjq <zeertzjq@outlook.com>
diff --git a/src/charset.c b/src/charset.c
index 7901479..1c7f7d7 100644
--- a/src/charset.c
+++ b/src/charset.c
@@ -809,7 +809,7 @@
cts->cts_vcol += win_lbr_chartabsize(cts, NULL);
#ifdef FEAT_PROP_POPUP
// check for a virtual text at the end of a line or on an empty line
- if (cts->cts_has_prop_with_text && *cts->cts_ptr == NUL)
+ if (len == MAXCOL && cts->cts_has_prop_with_text && *cts->cts_ptr == NUL)
{
(void)win_lbr_chartabsize(cts, NULL);
cts->cts_vcol += cts->cts_cur_text_width;
@@ -1196,8 +1196,7 @@
|| (tp->tp_col == MAXCOL
&& ((tp->tp_flags & TP_FLAG_ALIGN_ABOVE)
? col == 0
- : s[0] == NUL
- && cts->cts_with_trailing)))
+ : s[0] == NUL && cts->cts_with_trailing)))
&& -tp->tp_id - 1 < gap->ga_len)
{
char_u *p = ((char_u **)gap->ga_data)[-tp->tp_id - 1];