# HG changeset patch # User Christian Brabandt # Date 1523735107 -7200 # Node ID 1651a4c5c27adf7d8857d1e583a9ae3c5bd838d9 # Parent 71eeadf55d78976159aaa82c7ef75a1f40f67dc2 patch 8.0.1714: term_setsize() does not give an error in a normal buffer commit https://github.com/vim/vim/commit/6e72cd0d7267b9545ef966a53e62706914a96042 Author: Bram Moolenaar Date: Sat Apr 14 21:31:35 2018 +0200 patch 8.0.1714: term_setsize() does not give an error in a normal buffer Problem: Term_setsize() does not give an error in a normal buffer. Solution: Add an error message. diff --git a/src/terminal.c b/src/terminal.c --- a/src/terminal.c +++ b/src/terminal.c @@ -4629,7 +4629,12 @@ f_term_setsize(typval_T *argvars UNUSED, term_T *term; varnumber_T rows, cols; - if (buf == NULL || buf->b_term->tl_vterm == NULL) + if (buf == NULL) + { + EMSG(_("E955: Not a terminal buffer")); + return; + } + if (buf->b_term->tl_vterm == NULL) return; term = buf->b_term; rows = get_tv_number(&argvars[1]); diff --git a/src/testdir/test_terminal.vim b/src/testdir/test_terminal.vim --- a/src/testdir/test_terminal.vim +++ b/src/testdir/test_terminal.vim @@ -271,6 +271,27 @@ func Test_terminal_scroll() call delete('Xtext') endfunc +func Test_terminal_scrollback() + let buf = Run_shell_in_terminal({}) + set terminalscroll=100 + call writefile(range(150), 'Xtext') + if has('win32') + call term_sendkeys(buf, "type Xtext\") + else + call term_sendkeys(buf, "cat Xtext\") + endif + let rows = term_getsize(buf)[0] + call WaitFor({-> term_getline(buf, rows - 1) =~ '149'}) + let lines = line('$') + call assert_true(lines <= 100) + call assert_true(lines > 90) + + call Stop_shell_in_terminal(buf) + call term_wait(buf) + exe buf . 'bwipe' + set terminalscroll& +endfunc + func Test_terminal_size() let cmd = Get_cat_123_cmd() @@ -298,6 +319,7 @@ func Test_terminal_size() call assert_equal([7, 30], term_getsize('')) bwipe! + call assert_fails("call term_setsize('', 7, 30)", "E955:") call term_start(cmd, {'term_rows': 6, 'term_cols': 36}) let size = term_getsize('') diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -763,6 +763,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 1714, +/**/ 1713, /**/ 1712,