0
0
mirror of https://github.com/vim/vim.git synced 2025-07-26 11:04:33 -04:00

patch 8.2.1362: last entry of ":set term=xxx" overwritten by error message

Problem:    Last entry of ":set term=xxx" overwritten by error message when
            'cmdheight' is two or more. (Tony Mechelynck)
Solution:   Output extra line breaks.
This commit is contained in:
Bram Moolenaar 2020-08-04 20:17:31 +02:00
parent 6a25026262
commit ecd34bf55d
3 changed files with 19 additions and 0 deletions

View File

@ -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

View File

@ -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)

View File

@ -754,6 +754,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
1362,
/**/
1361,
/**/