summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <bram@vim.org>2011-03-22 13:07:26 +0100
committerBram Moolenaar <bram@vim.org>2011-03-22 13:07:26 +0100
commit11ae272dd8ff1f73a7670a7fcf4081ffc0e1ea40 (patch)
treec291c774b31fbeeaf4bd4716ba713dcf17c1da5b
parentfce1307a1e20955ac777c766fba2bd3f29d87296 (diff)
downloadvim-11ae272dd8ff1f73a7670a7fcf4081ffc0e1ea40.tar.gz
updated for version 7.3.139v7.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.
-rw-r--r--src/getchar.c3
-rw-r--r--src/message.c13
-rw-r--r--src/misc1.c2
-rw-r--r--src/version.c2
4 files changed, 12 insertions, 8 deletions
diff --git a/src/getchar.c b/src/getchar.c
index 8edf0a37..1073d80d 100644
--- a/src/getchar.c
+++ b/src/getchar.c
@@ -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 */
diff --git a/src/message.c b/src/message.c
index 07e734be..89248b4c 100644
--- a/src/message.c
+++ b/src/message.c
@@ -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;
diff --git a/src/misc1.c b/src/misc1.c
index c39bb984..ca7e25d1 100644
--- a/src/misc1.c
+++ b/src/misc1.c
@@ -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);
diff --git a/src/version.c b/src/version.c
index 4aba532b..30ab39a0 100644
--- a/src/version.c
+++ b/src/version.c
@@ -715,6 +715,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 139,
+/**/
138,
/**/
137,