To: vim_dev@googlegroups.com
Subject: Patch 7.3.139
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.139 (after 7.3.137)
Problem: When 'lazyredraw' is set ":ver" output can't be read.
Solution: Don't redraw the screen when at a prompt or command line.
Files: src/getchar.c, src/message.c, src/misc1.c
*** ../vim-7.3.138/src/getchar.c 2011-03-03 15:04:01.000000000 +0100
--- src/getchar.c 2011-03-22 12:16:23.000000000 +0100
***************
*** 2713,2719 ****
* 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)
{
update_screen(0);
setcursor(); /* put cursor back where it belongs */
--- 2713,2720 ----
* 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) != 0 || p_lz) && (State & CMDLINE) == 0
! && advance && must_redraw != 0 && !need_wait_return)
{
update_screen(0);
setcursor(); /* put cursor back where it belongs */
*** ../vim-7.3.138/src/message.c 2011-02-01 17:12:20.000000000 +0100
--- src/message.c 2011-03-22 13:06:24.000000000 +0100
***************
*** 879,894 ****
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.
! */
if (vgetc_busy > 0)
return;
if (no_wait_return)
{
- need_wait_return = TRUE;
if (!exmode_active)
cmdline_row = msg_row;
return;
--- 879,895 ----
if (msg_silent != 0)
return;
! /*
! * 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)
{
if (!exmode_active)
cmdline_row = msg_row;
return;
*** ../vim-7.3.138/src/misc1.c 2011-03-03 15:04:01.000000000 +0100
--- src/misc1.c 2011-03-22 12:15:26.000000000 +0100
***************
*** 3116,3122 ****
if (n == KEYLEN_REMOVED) /* key code removed */
{
! if (must_redraw)
{
/* Redrawing was postponed, do it now. */
update_screen(0);
--- 3116,3122 ----
if (n == KEYLEN_REMOVED) /* key code removed */
{
! if (must_redraw != 0 && !need_wait_return && (State & CMDLINE) == 0)
{
/* Redrawing was postponed, do it now. */
update_screen(0);
*** ../vim-7.3.138/src/version.c 2011-03-03 15:54:45.000000000 +0100
--- src/version.c 2011-03-22 13:06:33.000000000 +0100
***************
*** 716,717 ****
--- 716,719 ----
{ /* Add new patch number below this line */
+ /**/
+ 139,
/**/
--
"Software is like sex... it's better when it's free."
-- Linus Torvalds, initiator of the free Linux OS
Makes me wonder what FSF stands for...?
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///