diff src/charset.c @ 33021:2b47322be0d1 v9.0.1802

patch 9.0.1802: Multiline regex with Visual selection fails with virtual text Commit: https://github.com/vim/vim/commit/e3daa06be1a3ba7ced0735582467d092275e591c Author: zeertzjq <zeertzjq@outlook.com> Date: Sun Aug 27 19:11:46 2023 +0200 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>
author Christian Brabandt <cb@256bit.org>
date Sun, 27 Aug 2023 19:15:09 +0200
parents 7d0357f70cf8
children 0561bf3ba10c
line wrap: on
line diff
--- a/src/charset.c
+++ b/src/charset.c
@@ -809,7 +809,7 @@ win_linetabsize_cts(chartabsize_T *cts, 
 	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 @@ win_lbr_chartabsize(
 		       || (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];