components/vim/vim72-patches/7.2.042
changeset 379 c6a17bba1da3
parent 378 f0b61ed1d10d
child 380 e92b3b4a1c66
--- a/components/vim/vim72-patches/7.2.042	Thu Jul 07 19:05:29 2011 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,166 +0,0 @@
-To: [email protected]
-Subject: Patch 7.2.042
-Fcc: outbox
-From: Bram Moolenaar <[email protected]>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.2.042
-Problem:    When using winrestview() in a BufWinEnter autocommand the window
-	    is scrolled anyway. (Matt Zyzik)
-Solution:   Don't recompute topline when above 'scrolloff' from the bottom.
-	    Don't always put the cursor halfway when entering a buffer.  Add
-	    "w_topline_was_set".
-Files:	    src/buffer.c, src/move.c, src/structs.h
-
-
-*** ../vim-7.2.041/src/buffer.c	Sat Nov 15 14:10:23 2008
---- src/buffer.c	Sat Nov 15 14:58:52 2008
-***************
-*** 1401,1406 ****
---- 1401,1409 ----
-      curwin->w_cursor.coladd = 0;
-  #endif
-      curwin->w_set_curswant = TRUE;
-+ #ifdef FEAT_AUTOCMD
-+     curwin->w_topline_was_set = FALSE;
-+ #endif
-  
-      /* Make sure the buffer is loaded. */
-      if (curbuf->b_ml.ml_mfp == NULL)	/* need to load the file */
-***************
-*** 1440,1446 ****
-      maketitle();
-  #endif
-  #ifdef FEAT_AUTOCMD
-!     if (curwin->w_topline == 1)		/* when autocmds didn't change it */
-  #endif
-  	scroll_cursor_halfway(FALSE);	/* redisplay at correct position */
-  
---- 1443,1450 ----
-      maketitle();
-  #endif
-  #ifdef FEAT_AUTOCMD
-! 	/* when autocmds didn't change it */
-!     if (curwin->w_topline == 1 && !curwin->w_topline_was_set)
-  #endif
-  	scroll_cursor_halfway(FALSE);	/* redisplay at correct position */
-  
-*** ../vim-7.2.041/src/move.c	Sun Jul 13 19:25:23 2008
---- src/move.c	Sat Nov 15 14:56:47 2008
-***************
-*** 280,297 ****
-  
-  	if (curwin->w_botline <= curbuf->b_ml.ml_line_count)
-  	{
-! 	    if (curwin->w_cursor.lnum < curwin->w_botline
-! 		    && ((long)curwin->w_cursor.lnum
-  					     >= (long)curwin->w_botline - p_so
-  #ifdef FEAT_FOLDING
-  			|| hasAnyFolding(curwin)
-  #endif
-  			))
-! 	    {
-  		lineoff_T	loff;
-  
-! 		/* Cursor is above botline, check if there are 'scrolloff'
-! 		 * window lines below the cursor.  If not, need to scroll. */
-  		n = curwin->w_empty_rows;
-  		loff.lnum = curwin->w_cursor.lnum;
-  #ifdef FEAT_FOLDING
---- 280,299 ----
-  
-  	if (curwin->w_botline <= curbuf->b_ml.ml_line_count)
-  	{
-! 	    if (curwin->w_cursor.lnum < curwin->w_botline)
-! 	    {
-! 	      if (((long)curwin->w_cursor.lnum
-  					     >= (long)curwin->w_botline - p_so
-  #ifdef FEAT_FOLDING
-  			|| hasAnyFolding(curwin)
-  #endif
-  			))
-! 	      {
-  		lineoff_T	loff;
-  
-! 		/* Cursor is (a few lines) above botline, check if there are
-! 		 * 'scrolloff' window lines below the cursor.  If not, need to
-! 		 * scroll. */
-  		n = curwin->w_empty_rows;
-  		loff.lnum = curwin->w_cursor.lnum;
-  #ifdef FEAT_FOLDING
-***************
-*** 317,322 ****
---- 319,328 ----
-  		if (n >= p_so)
-  		    /* sufficient context, no need to scroll */
-  		    check_botline = FALSE;
-+ 	      }
-+ 	      else
-+ 		  /* sufficient context, no need to scroll */
-+ 		  check_botline = FALSE;
-  	    }
-  	    if (check_botline)
-  	    {
-***************
-*** 509,514 ****
---- 515,523 ----
-      /* Approximate the value of w_botline */
-      wp->w_botline += lnum - wp->w_topline;
-      wp->w_topline = lnum;
-+ #ifdef FEAT_AUTOCMD
-+     wp->w_topline_was_set = TRUE;
-+ #endif
-  #ifdef FEAT_DIFF
-      wp->w_topfill = 0;
-  #endif
-*** ../vim-7.2.041/src/structs.h	Sun Nov  9 13:43:25 2008
---- src/structs.h	Sat Nov 15 14:56:42 2008
-***************
-*** 1784,1793 ****
-  #endif
-  
-      /*
-!      * The next three specify the offsets for displaying the buffer:
-       */
-      linenr_T	w_topline;	    /* buffer line number of the line at the
-  				       top of the window */
-  #ifdef FEAT_DIFF
-      int		w_topfill;	    /* number of filler lines above w_topline */
-      int		w_old_topfill;	    /* w_topfill at last redraw */
---- 1784,1798 ----
-  #endif
-  
-      /*
-!      * "w_topline", "w_leftcol" and "w_skipcol" specify the offsets for
-!      * displaying the buffer.
-       */
-      linenr_T	w_topline;	    /* buffer line number of the line at the
-  				       top of the window */
-+ #ifdef FEAT_AUTOCMD
-+     char	w_topline_was_set;  /* flag set to TRUE when topline is set,
-+ 				       e.g. by winrestview() */
-+ #endif
-  #ifdef FEAT_DIFF
-      int		w_topfill;	    /* number of filler lines above w_topline */
-      int		w_old_topfill;	    /* w_topfill at last redraw */
-*** ../vim-7.2.041/src/version.c	Sat Nov 15 14:10:23 2008
---- src/version.c	Sat Nov 15 16:01:29 2008
-***************
-*** 678,679 ****
---- 678,681 ----
-  {   /* Add new patch number below this line */
-+ /**/
-+     42,
-  /**/
-
--- 
-hundred-and-one symptoms of being an internet addict:
-261. You find diskettes in your pockets when doing laundry.
-
- /// Bram Moolenaar -- [email protected] -- http://www.Moolenaar.net   \\\
-///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\        download, build and distribute -- http://www.A-A-P.org        ///
- \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///