diff options
author | Bram Moolenaar <Bram@vim.org> | 2011-03-22 13:07:26 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2011-03-22 13:07:26 +0100 |
commit | fd30cd41dc61e293e567ccb83d7ee0ce8fdc14eb (patch) | |
tree | a4964337e01f30c9cbb982111f8dcaef45b8a2cc /src | |
parent | f63c49d4e93ef064836d6b96609f78813d72871c (diff) | |
download | vim-git-fd30cd41dc61e293e567ccb83d7ee0ce8fdc14eb.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.
Diffstat (limited to 'src')
-rw-r--r-- | src/getchar.c | 3 | ||||
-rw-r--r-- | src/message.c | 13 | ||||
-rw-r--r-- | src/misc1.c | 2 | ||||
-rw-r--r-- | src/version.c | 2 |
4 files changed, 12 insertions, 8 deletions
diff --git a/src/getchar.c b/src/getchar.c index 8edf0a37e..1073d80d6 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 07e734be9..89248b4cf 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 c39bb984f..ca7e25d13 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 4aba532b2..30ab39a08 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, |