patch 8.2.2061: Vim9: E1030 error when using empty string for term_sendkeys()
Problem: Vim9: E1030 error when using empty string for term_sendkeys().
Solution: Don't check for an invalid type unless the terminal can't be
found. (closes #7382)
diff --git a/src/terminal.c b/src/terminal.c
index 6be7579..32e52ee 100644
--- a/src/terminal.c
+++ b/src/terminal.c
@@ -4595,12 +4595,12 @@
{
buf_T *buf;
- (void)tv_get_number(&argvars[0]); // issue errmsg if type error
++emsg_off;
buf = tv_get_buf(&argvars[0], FALSE);
--emsg_off;
if (buf == NULL || buf->b_term == NULL)
{
+ (void)tv_get_number(&argvars[0]); // issue errmsg if type error
ch_log(NULL, "%s: invalid buffer argument", where);
return NULL;
}
diff --git a/src/testdir/test_termcodes.vim b/src/testdir/test_termcodes.vim
index cfbb7ba..12e4dd3 100644
--- a/src/testdir/test_termcodes.vim
+++ b/src/testdir/test_termcodes.vim
@@ -1896,14 +1896,14 @@
func Test_list_builtin_terminals()
CheckRunVimInTerminal
- let buf = RunVimInTerminal('', #{rows: 14})
- call term_sendkeys(buf, ":set cmdheight=3\<CR>")
- call TermWait(buf, 100)
- call term_sendkeys(buf, ":set term=xxx\<CR>")
- call TermWait(buf, 100)
- call assert_match('builtin_dumb', term_getline(buf, 11))
- call assert_match('Not found in termcap', term_getline(buf, 12))
- call StopVimInTerminal(buf)
+ call RunVimInTerminal('', #{rows: 14})
+ call term_sendkeys('', ":set cmdheight=3\<CR>")
+ call TermWait('', 100)
+ call term_sendkeys('', ":set term=xxx\<CR>")
+ call TermWait('', 100)
+ call assert_match('builtin_dumb', term_getline('', 11))
+ call assert_match('Not found in termcap', term_getline('', 12))
+ call StopVimInTerminal('')
endfunc
func GetEscCodeCSI27(key, modifier)
diff --git a/src/version.c b/src/version.c
index d86a51e..395aee1 100644
--- a/src/version.c
+++ b/src/version.c
@@ -751,6 +751,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 2061,
+/**/
2060,
/**/
2059,