summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/drawline.c4
-rw-r--r--src/testdir/dumps/Test_conceal_linebreak_1.dump8
-rw-r--r--src/testdir/test_conceal.vim26
-rw-r--r--src/version.c2
4 files changed, 38 insertions, 2 deletions
diff --git a/src/drawline.c b/src/drawline.c
index 3e796d23e2..018a6d8c5f 100644
--- a/src/drawline.c
+++ b/src/drawline.c
@@ -3689,9 +3689,9 @@ win_line(
)
{
#ifdef FEAT_CONCEAL
- wlv.col += wlv.boguscols;
- wlv_screen_line(wp, &wlv, FALSE);
wlv.col -= wlv.boguscols;
+ wlv_screen_line(wp, &wlv, FALSE);
+ wlv.col += wlv.boguscols;
wlv.boguscols = 0;
#else
wlv_screen_line(wp, &wlv, FALSE);
diff --git a/src/testdir/dumps/Test_conceal_linebreak_1.dump b/src/testdir/dumps/Test_conceal_linebreak_1.dump
new file mode 100644
index 0000000000..8c93df07d1
--- /dev/null
+++ b/src/testdir/dumps/Test_conceal_linebreak_1.dump
@@ -0,0 +1,8 @@
+>x+0&#ffffff0@74
+| @74
+|a@63| @10
+|++0#4040ff13&| |b+0#0000000&@66| @5
+|++0#4040ff13&| |c+0#0000000&@5| @66
+|~+0#4040ff13&| @73
+|~| @73
+| +0#0000000&@56|1|,|1| @10|A|l@1|
diff --git a/src/testdir/test_conceal.vim b/src/testdir/test_conceal.vim
index c0a46dc6b7..385d42b544 100644
--- a/src/testdir/test_conceal.vim
+++ b/src/testdir/test_conceal.vim
@@ -159,6 +159,32 @@ func Test_conceal_resize_term()
call StopVimInTerminal(buf)
endfunc
+func Test_conceal_linebreak()
+ CheckScreendump
+
+ let code =<< trim [CODE]
+ vim9script
+ &wrap = true
+ &conceallevel = 2
+ &concealcursor = 'nc'
+ &linebreak = true
+ &showbreak = '+ '
+ var line: string = 'a`a`a`a`'
+ .. 'a'->repeat(&columns - 15)
+ .. ' b`b`'
+ .. 'b'->repeat(&columns - 10)
+ .. ' cccccc'
+ ['x'->repeat(&columns), '', line]->setline(1)
+ syntax region CodeSpan matchgroup=Delimiter start=/\z(`\+\)/ end=/\z1/ concealends
+ [CODE]
+ call writefile(code, 'XTest_conceal_linebreak', 'D')
+ let buf = RunVimInTerminal('-S XTest_conceal_linebreak', {'rows': 8})
+ call VerifyScreenDump(buf, 'Test_conceal_linebreak_1', {})
+
+ " clean up
+ call StopVimInTerminal(buf)
+endfunc
+
" Tests for correct display (cursor column position) with +conceal and
" tabulators. Need to run this test in a separate Vim instance. Otherwise the
" screen is not updated (lazy redraw) and the cursor position is wrong.
diff --git a/src/version.c b/src/version.c
index e9cc0ec3b4..540ea3713a 100644
--- a/src/version.c
+++ b/src/version.c
@@ -700,6 +700,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 662,
+/**/
661,
/**/
660,