Patch 7.3.137 (after 7.3.091)
Problem:    When 'lazyredraw' is set the screen may not be updated. (Ivan
            Krasilnikov)
Solution:   Call update_screen() before waiting for input.
Files:      src/misc1.c, src/getchar.c


*** ../vim-7.3.136/src/misc1.c  2011-01-22 00:11:42.000000000 +0100
--- src/misc1.c 2011-03-03 14:02:02.000000000 +0100
***************
*** 3115,3121 ****
--- 3115,3129 ----
            continue;
  
        if (n == KEYLEN_REMOVED)  /* key code removed */
+       {
+           if (must_redraw)
+           {
+               /* Redrawing was postponed, do it now. */
+               update_screen(0);
+               setcursor(); /* put cursor back where it belongs */
+           }
            continue;
+       }
        if (n > 0)              /* found a termcode: adjust length */
            len = n;
        if (len == 0)           /* nothing typed yet */
*** ../vim-7.3.136/src/getchar.c        2010-12-30 12:30:26.000000000 +0100
--- src/getchar.c       2011-03-03 14:01:26.000000000 +0100
***************
*** 2710,2717 ****
                 * are still available.  But when those available characters
                 * are part of a mapping, and we are going to do a blocking
                 * wait here.  Need to update the screen to display the
!                * changed text so far. */
!               if ((State & INSERT) && advance && must_redraw != 0)
                {
                    update_screen(0);
                    setcursor(); /* put cursor back where it belongs */
--- 2710,2719 ----
                 * are still available.  But when those available characters
                 * are part of a mapping, and we are going to do a blocking
                 * wait here.  Need to update the screen to display the
!                * 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 */
*** ../vim-7.3.136/src/version.c        2011-03-03 15:01:25.000000000 +0100
--- src/version.c       2011-03-03 15:02:45.000000000 +0100
***************
*** 716,717 ****
--- 716,719 ----
  {   /* Add new patch number below this line */
+ /**/
+     137,
  /**/

-- 
ARTHUR:        What?
BLACK KNIGHT:  None shall pass.
ARTHUR:        I have no quarrel with you, good Sir knight, but I must cross
               this bridge.
BLACK KNIGHT:  Then you shall die.
                                  The Quest for the Holy Grail (Monty Python)

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