patch 9.0.1851: breakindent missing by virt text
Problem: Virtual text at a column causes 'breakindent' and 'showbreak'
to be missing (after patch 9.0.1124).
Solution: Add check for "tp_col" in another place where TP_FLAG_WRAP is
checked.
closes: #12769
closes: #13008
closes: #13010
Signed-off-by: Christian Brabandt <cb@256bit.org>
Co-authored-by: zeertzjq <zeertzjq@outlook.com>
diff --git a/src/drawline.c b/src/drawline.c
index edcf55c..04e7ed8 100644
--- a/src/drawline.c
+++ b/src/drawline.c
@@ -2112,7 +2112,8 @@
& TP_FLAG_ALIGN_RIGHT);
int below = (tp->tp_flags
& TP_FLAG_ALIGN_BELOW);
- int wrap = (tp->tp_flags & TP_FLAG_WRAP);
+ int wrap = tp->tp_col < MAXCOL
+ || (tp->tp_flags & TP_FLAG_WRAP);
int padding = tp->tp_col == MAXCOL
&& tp->tp_len > 1
? tp->tp_len - 1 : 0;
diff --git a/src/testdir/test_textprop.vim b/src/testdir/test_textprop.vim
index 736d50b..106e2e5 100644
--- a/src/testdir/test_textprop.vim
+++ b/src/testdir/test_textprop.vim
@@ -1983,7 +1983,7 @@
set linebreak
setline(1, 'one twoword')
prop_type_add('test', {highlight: 'Special'})
- prop_add(1, 4, {text: ': virtual text', type: 'test', text_wrap: 'wrap'})
+ prop_add(1, 4, {text: ': virtual text', type: 'test'})
END
call writefile(lines, 'XscriptPropWithLinebreak', 'D')
let buf = RunVimInTerminal('-S XscriptPropWithLinebreak', #{rows: 6, cols: 50})
@@ -2690,7 +2690,7 @@
setlocal scrolloff=0 smoothscroll
call setline(1, repeat('a', 28))
call prop_type_add('theprop', #{highlight: 'Special'})
- call prop_add(1, 28, #{type: 'theprop', text: repeat('123', 23), text_wrap: 'wrap'})
+ call prop_add(1, 28, #{type: 'theprop', text: repeat('123', 23)})
normal! $
END
let lines = insert(lines, a:cmd)
@@ -2761,7 +2761,7 @@
setlocal list listchars=tab:<-> scrolloff=0 smoothscroll
call setline(1, repeat("\t", 4) .. 'a')
call prop_type_add('theprop', #{highlight: 'Special'})
- call prop_add(1, 4, #{type: 'theprop', text: repeat('12', 32), text_wrap: 'wrap'})
+ call prop_add(1, 4, #{type: 'theprop', text: repeat('12', 32)})
normal! $
END
call writefile(lines, 'XscriptPropsBeforeTabSkipcol', 'D')
@@ -2798,7 +2798,7 @@
setlocal linebreak showbreak=+ breakindent breakindentopt=shift:2
call setline(1, repeat('a', 50) .. ' ' .. repeat('c', 45))
call prop_type_add('theprop', #{highlight: 'Special'})
- call prop_add(1, 51, #{type: 'theprop', text: repeat('b', 10), text_wrap: 'wrap'})
+ call prop_add(1, 51, #{type: 'theprop', text: repeat('b', 10)})
normal! $
END
call writefile(lines, 'XscriptPropsBeforeLinebreak', 'D')
@@ -3255,8 +3255,8 @@
let lines =<< trim END
call setline(1, ['', 'aaa', '', 'bbbbbb'])
call prop_type_add('prop1', #{highlight: 'Search'})
- call prop_add(1, 1, #{type: 'prop1', text_wrap: 'wrap', text: repeat('X', &columns)})
- call prop_add(3, 1, #{type: 'prop1', text_wrap: 'wrap', text: repeat('X', &columns + 1)})
+ call prop_add(1, 1, #{type: 'prop1', text: repeat('X', &columns)})
+ call prop_add(3, 1, #{type: 'prop1', text: repeat('X', &columns + 1)})
normal gg0
END
call writefile(lines, 'XscriptPropsWithTextEmptyLine', 'D')
diff --git a/src/version.c b/src/version.c
index 517e050..605a61c 100644
--- a/src/version.c
+++ b/src/version.c
@@ -700,6 +700,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 1851,
+/**/
1850,
/**/
1849,