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)
diff --git a/src/testdir/test_terminal.vim b/src/testdir/test_terminal.vim
index 88cb89e..f2586e1 100644
--- a/src/testdir/test_terminal.vim
+++ b/src/testdir/test_terminal.vim
@@ -1658,3 +1658,25 @@
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