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
index 7162d68..be594c4 100644
--- a/src/terminal.c
+++ b/src/terminal.c
@@ -4629,7 +4629,12 @@
     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 137de7d..95a131b 100644
--- a/src/testdir/test_terminal.vim
+++ b/src/testdir/test_terminal.vim
@@ -271,6 +271,27 @@
   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 @@
   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 b76ccf4..76596f2 100644
--- a/src/version.c
+++ b/src/version.c
@@ -763,6 +763,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1714,
+/**/
     1713,
 /**/
     1712,