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 -- [email protected] -- 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    ///

-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

Raspunde prin e-mail lui