Mercurial > vim
changeset 2723:2e72d84e8965 v7.3.139
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.
author | Bram Moolenaar <bram@vim.org> |
---|---|
date | Tue, 22 Mar 2011 13:07:26 +0100 |
parents | ea399ac2c1b9 |
children | 96a7b564c2f3 |
files | src/getchar.c src/message.c src/misc1.c src/version.c |
diffstat | 4 files changed, 12 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- 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 */
--- 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;