summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2018-04-14 21:31:35 +0200
committerBram Moolenaar <Bram@vim.org>2018-04-14 21:31:35 +0200
commit6e72cd0d7267b9545ef966a53e62706914a96042 (patch)
tree1989d2ede9c089a7bc22905026bb76ca767d2eb7
parentb3623a382abc8f8e2bcfba4c1a2aa06b7578eb8d (diff)
downloadvim-git-6e72cd0d7267b9545ef966a53e62706914a96042.tar.gz
patch 8.0.1714: term_setsize() does not give an error in a normal bufferv8.0.1714
Problem: Term_setsize() does not give an error in a normal buffer. Solution: Add an error message.
-rw-r--r--src/terminal.c7
-rw-r--r--src/testdir/test_terminal.vim22
-rw-r--r--src/version.c2
3 files changed, 30 insertions, 1 deletions
diff --git a/src/terminal.c b/src/terminal.c
index 7162d684c..be594c405 100644
--- a/src/terminal.c
+++ b/src/terminal.c
@@ -4629,7 +4629,12 @@ f_term_setsize(typval_T *argvars UNUSED, typval_T *rettv 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
index 137de7ddd..95a131be7 100644
--- 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\<CR>")
+ else
+ call term_sendkeys(buf, "cat Xtext\<CR>")
+ 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
index b76ccf4ce..76596f2bf 100644
--- 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,