forked from aniani/vim
patch 9.0.1634: message is cleared when removing mode message
Problem: Message is cleared when removing mode message (Gary Johnson). Solution: Do not clear the command line after displaying a message.
This commit is contained in:
@@ -1641,6 +1641,14 @@ msg_outtrans_len_attr(char_u *msgstr, int len, int attr)
|
|||||||
attr &= ~MSG_HIST;
|
attr &= ~MSG_HIST;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// When drawing over the command line no need to clear it later or remove
|
||||||
|
// the mode message.
|
||||||
|
if (msg_row == cmdline_row && msg_col == 0)
|
||||||
|
{
|
||||||
|
clear_cmdline = FALSE;
|
||||||
|
mode_displayed = FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
// If the string starts with a composing character first draw a space on
|
// If the string starts with a composing character first draw a space on
|
||||||
// which the composing char can be drawn.
|
// which the composing char can be drawn.
|
||||||
if (enc_utf8 && utf_iscomposing(utf_ptr2char(msgstr)))
|
if (enc_utf8 && utf_iscomposing(utf_ptr2char(msgstr)))
|
||||||
|
10
src/testdir/dumps/Test_message_not_cleared_after_mode_1.dump
Normal file
10
src/testdir/dumps/Test_message_not_cleared_after_mode_1.dump
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
>o+0&#ffffff0|n|e| @71
|
||||||
|
|t|w|o| @71
|
||||||
|
|t|h|r|e@1| @69
|
||||||
|
|~+0#4040ff13&| @73
|
||||||
|
|~| @73
|
||||||
|
|~| @73
|
||||||
|
|~| @73
|
||||||
|
|~| @73
|
||||||
|
|~| @73
|
||||||
|
|f+0#0000000&|r|o|m| |D|e|b|u|g|S|i|l|e|n|t| |n|o|r|m|a|l| @33|1|,|1| @10|A|l@1|
|
10
src/testdir/dumps/Test_message_not_cleared_after_mode_2.dump
Normal file
10
src/testdir/dumps/Test_message_not_cleared_after_mode_2.dump
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
>o+0&#ffffff0|n|e| @71
|
||||||
|
|t|w|o| @71
|
||||||
|
|t|h|r|e@1| @69
|
||||||
|
|~+0#4040ff13&| @73
|
||||||
|
|~| @73
|
||||||
|
|~| @73
|
||||||
|
|~| @73
|
||||||
|
|~| @73
|
||||||
|
|~| @73
|
||||||
|
|f+0#0000000&|r|o|m| |D|e|b|u|g|S|i|l|e|n|t| |v|i|s|u|a|l| @33|1|,|1| @10|A|l@1|
|
@@ -336,6 +336,34 @@ func Test_message_more_scrollback()
|
|||||||
call StopVimInTerminal(buf)
|
call StopVimInTerminal(buf)
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
|
func Test_message_not_cleared_after_mode()
|
||||||
|
CheckRunVimInTerminal
|
||||||
|
|
||||||
|
let lines =<< trim END
|
||||||
|
nmap <silent> gx :call DebugSilent('normal')<CR>
|
||||||
|
vmap <silent> gx :call DebugSilent('visual')<CR>
|
||||||
|
function DebugSilent(arg)
|
||||||
|
echomsg "from DebugSilent" a:arg
|
||||||
|
endfunction
|
||||||
|
set showmode
|
||||||
|
set cmdheight=1
|
||||||
|
call setline(1, ['one', 'two', 'three'])
|
||||||
|
END
|
||||||
|
call writefile(lines, 'XmessageMode', 'D')
|
||||||
|
let buf = RunVimInTerminal('-S XmessageMode', {'rows': 10})
|
||||||
|
|
||||||
|
call term_sendkeys(buf, 'gx')
|
||||||
|
call TermWait(buf)
|
||||||
|
call VerifyScreenDump(buf, 'Test_message_not_cleared_after_mode_1', {})
|
||||||
|
|
||||||
|
" removing the mode message used to also clear the intended message
|
||||||
|
call term_sendkeys(buf, 'vEgx')
|
||||||
|
call TermWait(buf)
|
||||||
|
call VerifyScreenDump(buf, 'Test_message_not_cleared_after_mode_2', {})
|
||||||
|
|
||||||
|
call StopVimInTerminal(buf)
|
||||||
|
endfunc
|
||||||
|
|
||||||
" Test verbose message before echo command
|
" Test verbose message before echo command
|
||||||
func Test_echo_verbose_system()
|
func Test_echo_verbose_system()
|
||||||
CheckRunVimInTerminal
|
CheckRunVimInTerminal
|
||||||
|
@@ -695,6 +695,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
1634,
|
||||||
/**/
|
/**/
|
||||||
1633,
|
1633,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user