]> granicus.if.org Git - vim/commitdiff
updated for version 7.3.139 v7.3.139
authorBram Moolenaar <Bram@vim.org>
Tue, 22 Mar 2011 12:07:26 +0000 (13:07 +0100)
committerBram Moolenaar <Bram@vim.org>
Tue, 22 Mar 2011 12:07:26 +0000 (13:07 +0100)
Problem:    When 'lazyredraw' is set ":ver" output can't be read.
Solution:   Don't redraw the screen when at a prompt or command line.

src/getchar.c
src/message.c
src/misc1.c
src/version.c

index 8edf0a37ecd0bcaaf4d10cbe7d3bb471cd606096..1073d80d602db081d40006fa3a0811334c635e61 100644 (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 */
index 07e734be9f6426c29078c9f21cc7c2fa42dc4f6b..89248b4cf04d16fb476efad185f4ce4f4eeaa8ee 100644 (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;
index c39bb984f429c9e745588f1184fb52f722e88b7d..ca7e25d1391e006529f0f45ad021bb4255857473 100644 (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);
index 4aba532b277d18a20748ef017e77dda76eede7af..30ab39a0867e1bb411ed431aef0951046a032192 100644 (file)
@@ -714,6 +714,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    139,
 /**/
     138,
 /**/