summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2020-08-04 20:17:31 +0200
committerBram Moolenaar <Bram@vim.org>2020-08-04 20:17:31 +0200
commitecd34bf55d72f530859e290ac02ee41f9fb27cce (patch)
tree14398ccf3e01d8e0233c1994c8e0938086a03e32
parent6a25026262e2cdbbd8738361c5bd6ebef8862d87 (diff)
patch 8.2.1362: last entry of ":set term=xxx" overwritten by error messagev8.2.1362
Problem: Last entry of ":set term=xxx" overwritten by error message when 'cmdheight' is two or more. (Tony Mechelynck) Solution: Output extra line breaks.
-rw-r--r--src/term.c5
-rw-r--r--src/testdir/test_termcodes.vim12
-rw-r--r--src/version.c2
3 files changed, 19 insertions, 0 deletions
diff --git a/src/term.c b/src/term.c
index 3c0ca779b4..3648df6d50 100644
--- a/src/term.c
+++ b/src/term.c
@@ -1763,6 +1763,7 @@ get_term_entries(int *height, int *width)
report_term_error(char *error_msg, char_u *term)
{
struct builtin_term *termp;
+ int i;
mch_errmsg("\r\n");
if (error_msg != NULL)
@@ -1787,6 +1788,10 @@ report_term_error(char *error_msg, char_u *term)
mch_errmsg("\r\n");
}
}
+ // Output extra 'cmdheight' line breaks to avoid that the following error
+ // message overwrites the last terminal name.
+ for (i = 1; i < p_ch; ++i)
+ mch_errmsg("\r\n");
}
static void
diff --git a/src/testdir/test_termcodes.vim b/src/testdir/test_termcodes.vim
index 30123148f6..da2f066ac7 100644
--- a/src/testdir/test_termcodes.vim
+++ b/src/testdir/test_termcodes.vim
@@ -7,6 +7,7 @@ CheckUnix
source shared.vim
source mouse.vim
+source view_util.vim
func Test_term_mouse_left_click()
new
@@ -1893,6 +1894,17 @@ func Test_get_termcode()
set ttybuiltin
endfunc
+func Test_list_builtin_terminals()
+ let buf = RunVimInTerminal('', #{rows: 14})
+ call term_sendkeys(buf, ":set cmdheight=3\<CR>")
+ call term_wait(buf, 100)
+ call term_sendkeys(buf, ":set term=xxx\<CR>")
+ call term_wait(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)
+endfunc
+
func GetEscCodeCSI27(key, modifier)
let key = printf("%d", char2nr(a:key))
let mod = printf("%d", a:modifier)
diff --git a/src/version.c b/src/version.c
index cb54f8cdb3..251a59431c 100644
--- a/src/version.c
+++ b/src/version.c
@@ -755,6 +755,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 1362,
+/**/
1361,
/**/
1360,