vim-patch:7.4.2275

Problem:    ":diffoff!" does not remove filler lines.
Solution:   Force a redraw and invalidate the cursor. (closes vim/vim#1014)

e67d546f3c
This commit is contained in:
lonerover 2017-02-07 15:46:19 +08:00
parent cca8d2751a
commit 7629176fb1
3 changed files with 23 additions and 4 deletions

View File

@ -1154,10 +1154,13 @@ void ex_diffoff(exarg_T *eap)
}
foldUpdateAll(wp);
// make sure topline is not halfway through a fold
changed_window_setting_win(wp);
}
// remove filler lines
wp->w_topfill = 0;
// make sure topline is not halfway a fold and cursor is
// invalidated
changed_window_setting_win(wp);
// Note: 'sbo' is not restored, it's a global option.
diff_buf_adjust(wp);

View File

@ -202,3 +202,19 @@ func Test_diffget_diffput()
bwipe!
enew!
endfunc
func Test_diffoff()
enew!
call setline(1, ['Two', 'Three'])
let normattr = screenattr(1, 1)
diffthis
botright vert new
call setline(1, ['One', '', 'Two', 'Three'])
diffthis
redraw
diffoff!
redraw
call assert_equal(normattr, screenattr(1, 1))
bwipe!
bwipe!
endfunc

View File

@ -165,7 +165,7 @@ static int included_patches[] = {
// 2278 NA
2277,
// 2276,
// 2275,
2275,
2274,
2273,
2272,