1
0
forked from aniani/vim

patch 8.2.0766: display error when using 'number' and 'breakindent'

Problem:    Display error when using 'number' and 'breakindent'.
Solution:   Adjust extra spaces in the first row. (Ken Takata, closes #6089,
            closes #5986)
This commit is contained in:
Bram Moolenaar
2020-05-16 14:07:39 +02:00
parent fd615a3c90
commit e882f7a73c
3 changed files with 55 additions and 0 deletions

View File

@@ -1177,6 +1177,12 @@ win_line(
c_final = NUL; c_final = NUL;
n_extra = get_breakindent_win(wp, n_extra = get_breakindent_win(wp,
ml_get_buf(wp->w_buffer, lnum, FALSE)); ml_get_buf(wp->w_buffer, lnum, FALSE));
if (row == startrow)
{
n_extra -= win_col_off2(wp);
if (n_extra < 0)
n_extra = 0;
}
if (wp->w_skipcol > 0 && wp->w_p_wrap && wp->w_briopt_sbr) if (wp->w_skipcol > 0 && wp->w_p_wrap && wp->w_briopt_sbr)
need_showbreak = FALSE; need_showbreak = FALSE;
// Correct end of highlighted area for 'breakindent', // Correct end of highlighted area for 'breakindent',

View File

@@ -696,4 +696,51 @@ func Test_breakindent19_sbr_nextpage()
call s:close_windows('set breakindent& briopt& sbr&') call s:close_windows('set breakindent& briopt& sbr&')
endfunc endfunc
func Test_breakindent20_cpo_n_nextpage()
let s:input = ""
call s:test_windows('setl breakindent briopt=min:14 cpo+=n number')
call setline(1, repeat('a', 200))
norm! 1gg
redraw!
let lines = s:screen_lines(1, 20)
let expect = [
\ " 1 aaaaaaaaaaaaaaaa",
\ " aaaaaaaaaaaaaaaa",
\ " aaaaaaaaaaaaaaaa",
\ ]
call s:compare_lines(expect, lines)
" Scroll down one screen line
setl scrolloff=5
norm! 5gj
redraw!
let lines = s:screen_lines(1, 20)
let expect = [
\ "--1 aaaaaaaaaaaaaaaa",
\ " aaaaaaaaaaaaaaaa",
\ " aaaaaaaaaaaaaaaa",
\ ]
call s:compare_lines(expect, lines)
setl briopt+=shift:2
norm! 1gg
let lines = s:screen_lines(1, 20)
let expect = [
\ " 1 aaaaaaaaaaaaaaaa",
\ " aaaaaaaaaaaaaa",
\ " aaaaaaaaaaaaaa",
\ ]
call s:compare_lines(expect, lines)
" Scroll down one screen line
norm! 5gj
let lines = s:screen_lines(1, 20)
let expect = [
\ "--1 aaaaaaaaaaaaaa",
\ " aaaaaaaaaaaaaa",
\ " aaaaaaaaaaaaaa",
\ ]
call s:compare_lines(expect, lines)
call s:close_windows('set breakindent& briopt& cpo& number&')
endfunc
" vim: shiftwidth=2 sts=2 expandtab " vim: shiftwidth=2 sts=2 expandtab

View File

@@ -746,6 +746,8 @@ static char *(features[]) =
static int included_patches[] = static int included_patches[] =
{ /* Add new patch number below this line */ { /* Add new patch number below this line */
/**/
766,
/**/ /**/
765, 765,
/**/ /**/