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    ///
