1
0
forked from aniani/vim

updated for version 7.3.139

Problem:    When 'lazyredraw' is set ":ver" output can't be read.
Solution:   Don't redraw the screen when at a prompt or command line.
This commit is contained in:
Bram Moolenaar 2011-03-22 13:07:26 +01:00
parent f63c49d4e9
commit fd30cd41dc
4 changed files with 12 additions and 8 deletions

View File

@ -2713,7 +2713,8 @@ vgetorpeek(advance)
* changed text so far. Also for when 'lazyredraw' is set and
* redrawing was postponed because there was something in the
* input buffer (e.g., termresponse). */
if (((State & INSERT) || p_lz) && advance && must_redraw != 0)
if (((State & INSERT) != 0 || p_lz) && (State & CMDLINE) == 0
&& advance && must_redraw != 0 && !need_wait_return)
{
update_screen(0);
setcursor(); /* put cursor back where it belongs */

View File

@ -879,16 +879,17 @@ wait_return(redraw)
if (msg_silent != 0)
return;
/*
* With the global command (and some others) we only need one return at the
* end. Adjust cmdline_row to avoid the next message overwriting the last one.
* When inside vgetc(), we can't wait for a typed character at all.
*/
/*
* When inside vgetc(), we can't wait for a typed character at all.
* With the global command (and some others) we only need one return at
* the end. Adjust cmdline_row to avoid the next message overwriting the
* last one.
*/
if (vgetc_busy > 0)
return;
need_wait_return = TRUE;
if (no_wait_return)
{
need_wait_return = TRUE;
if (!exmode_active)
cmdline_row = msg_row;
return;

View File

@ -3116,7 +3116,7 @@ get_keystroke()
if (n == KEYLEN_REMOVED) /* key code removed */
{
if (must_redraw)
if (must_redraw != 0 && !need_wait_return && (State & CMDLINE) == 0)
{
/* Redrawing was postponed, do it now. */
update_screen(0);

View File

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