0
0
mirror of https://github.com/vim/vim.git synced 2025-09-28 04:24:06 -04:00

patch 7.4.1603

Problem:    Timer with an ":echo" command messes up display.
Solution:   Redraw depending on the mode. (Hirohito Higashi)  Avoid the more
            prompt being used recursively.
This commit is contained in:
Bram Moolenaar
2016-03-19 17:05:20 +01:00
parent cff572abb9
commit bfb96c047b
3 changed files with 22 additions and 2 deletions

View File

@@ -870,6 +870,8 @@ wait_return(int redraw)
#ifdef USE_ON_FLY_SCROLL
dont_scroll = TRUE; /* disallow scrolling here */
#endif
cmdline_row = msg_row;
/* Avoid the sequence that the user types ":" at the hit-return prompt
* to start an Ex command, but the file-changed dialog gets in the
* way. */
@@ -2426,6 +2428,7 @@ msg_puts_printf(char_u *str, int maxlen)
static int
do_more_prompt(int typed_char)
{
static int entered = FALSE;
int used_typed_char = typed_char;
int oldState = State;
int c;
@@ -2437,6 +2440,13 @@ do_more_prompt(int typed_char)
msgchunk_T *mp;
int i;
/* We get called recursively when a timer callback outputs a message. In
* that case don't show another prompt. Also when at the hit-Enter prompt.
*/
if (entered || State == HITRETURN)
return FALSE;
entered = TRUE;
if (typed_char == 'G')
{
/* "g<": Find first line on the last page. */
@@ -2675,6 +2685,7 @@ do_more_prompt(int typed_char)
msg_col = Columns - 1;
#endif
entered = FALSE;
#ifdef FEAT_CON_DIALOG
return retval;
#else