0
0
mirror of https://github.com/vim/vim.git synced 2025-07-26 11:04:33 -04:00

patch 8.1.0522: :terminal does not show trailing empty lines

Problem:    :terminal does not show trailing empty lines.
Solution:   Add empty lines. (Hirohito Higashi, closes #3605)
This commit is contained in:
Bram Moolenaar 2018-11-11 22:18:21 +01:00
parent 883ba68cda
commit f3aea59afa
3 changed files with 33 additions and 0 deletions

View File

@ -1592,6 +1592,15 @@ update_snapshot(term_T *term)
}
}
// Add trailing empty lines.
for (pos.row = term->tl_scrollback.ga_len;
pos.row < term->tl_scrollback_scrolled + term->tl_cursor_pos.row;
++pos.row)
{
if (add_empty_scrollback(term, &fill_attr, 0) == OK)
add_scrollback_line_to_buffer(term, (char_u *)"", 0);
}
term->tl_dirty_snapshot = FALSE;
#ifdef FEAT_TIMERS
term->tl_timer_set = FALSE;

View File

@ -1658,3 +1658,25 @@ func Test_terminal_hidden_and_close()
call WaitForAssert({-> assert_false(bufexists(bnr))})
call assert_equal(1, winnr('$'))
endfunc
func Test_terminal_does_not_truncate_last_newlines()
let cmd = has('win32') ? 'type' : 'cat'
let contents = [
\ [ 'One', '', 'X' ],
\ [ 'Two', '', '' ],
\ [ 'Three' ] + repeat([''], 30)
\ ]
for c in contents
call writefile(c, 'Xfile')
exec 'term' cmd 'Xfile'
let bnr = bufnr('$')
call assert_equal('terminal', getbufvar(bnr, '&buftype'))
call WaitForAssert({-> assert_equal('finished', term_getstatus(bnr))})
sleep 50m
call assert_equal(c, getline(1, line('$')))
quit
endfor
call delete('Xfile')
endfunc

View File

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