patch 8.2.0308: 'showbreak' does not work for a very long line
Problem: 'showbreak' does not work for a very long line. (John Little)
Solution: Check whether 'briopt' contains "sbr". (Ken Takata, closes #5523,
closes #5684)
diff --git a/src/drawline.c b/src/drawline.c
index 176aa69..b581411 100644
--- a/src/drawline.c
+++ b/src/drawline.c
@@ -1176,7 +1176,7 @@
c_final = NUL;
n_extra = get_breakindent_win(wp,
ml_get_buf(wp->w_buffer, lnum, FALSE));
- if (wp->w_skipcol > 0 && wp->w_p_wrap)
+ if (wp->w_skipcol > 0 && wp->w_p_wrap && wp->w_p_brisbr)
need_showbreak = FALSE;
// Correct end of highlighted area for 'breakindent',
// required when 'linebreak' is also set.
diff --git a/src/testdir/test_breakindent.vim b/src/testdir/test_breakindent.vim
index 6e4e090..ad4ae1d 100644
--- a/src/testdir/test_breakindent.vim
+++ b/src/testdir/test_breakindent.vim
@@ -682,5 +682,15 @@
\ "> aaaaaaaaaaaaaaaaaa",
\ ]
call s:compare_lines(expect, lines)
+
+ setl breakindent briopt=min:18 sbr=>
+ norm! 5gj
+ let lines = s:screen_lines(1, 20)
+ let expect = [
+ \ ">aaaaaaaaaaaaaaaaaaa",
+ \ ">aaaaaaaaaaaaaaaaaaa",
+ \ ">aaaaaaaaaaaaaaaaaaa",
+ \ ]
+ call s:compare_lines(expect, lines)
call s:close_windows('set breakindent& briopt& sbr&')
endfunc
diff --git a/src/version.c b/src/version.c
index 373eb16..db00344 100644
--- a/src/version.c
+++ b/src/version.c
@@ -739,6 +739,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 308,
+/**/
307,
/**/
306,