[vim: 6/25] - patchlevel 645

Karsten Hopp karsten at fedoraproject.org
Mon Mar 9 13:11:00 UTC 2015


commit 09dc617a97ed615c0b39d8fefd91952afc92cd64
Author: Karsten Hopp <karsten at redhat.com>
Date:   Sat Feb 28 18:00:04 2015 +0100

    - patchlevel 645

 7.4.645 | 101 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 101 insertions(+)
---
diff --git a/7.4.645 b/7.4.645
new file mode 100644
index 0000000..58e8f05
--- /dev/null
+++ b/7.4.645
@@ -0,0 +1,101 @@
+To: vim_dev at googlegroups.com
+Subject: Patch 7.4.645
+Fcc: outbox
+From: Bram Moolenaar <Bram at moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.4.645
+Problem:    When splitting the window in a BufAdd autocommand while still in
+	    the first, empty buffer the window count is wrong.
+Solution:   Do not reset b_nwindows to zero and don't increment it.
+Files:	    src/buffer.c, src/ex_cmds.c
+
+
+*** ../vim-7.4.644/src/buffer.c	2015-01-27 18:43:42.134535513 +0100
+--- src/buffer.c	2015-02-27 19:33:51.325459521 +0100
+***************
+*** 1794,1800 ****
+  	if (aborting())		/* autocmds may abort script processing */
+  	    return NULL;
+  #endif
+- 	/* buf->b_nwindows = 0; why was this here? */
+  	free_buffer_stuff(buf, FALSE);	/* delete local variables et al. */
+  
+  	/* Init the options. */
+--- 1794,1799 ----
+***************
+*** 1872,1877 ****
+--- 1871,1879 ----
+  #ifdef FEAT_AUTOCMD
+      if (!(flags & BLN_DUMMY))
+      {
++ 	/* Tricky: these autocommands may change the buffer list.  They could
++ 	 * also split the window with re-using the one empty buffer. This may
++ 	 * result in unexpectedly losing the empty buffer. */
+  	apply_autocmds(EVENT_BUFNEW, NULL, NULL, FALSE, buf);
+  	if (!buf_valid(buf))
+  	    return NULL;
+*** ../vim-7.4.644/src/ex_cmds.c	2015-02-17 12:17:10.837775002 +0100
+--- src/ex_cmds.c	2015-02-27 19:28:47.232909242 +0100
+***************
+*** 3375,3381 ****
+  	if (buf->b_ml.ml_mfp == NULL)		/* no memfile yet */
+  	{
+  	    oldbuf = FALSE;
+- 	    buf->b_nwindows = 0;
+  	}
+  	else					/* existing memfile */
+  	{
+--- 3375,3380 ----
+***************
+*** 3408,3414 ****
+  	 * Make the (new) buffer the one used by the current window.
+  	 * If the old buffer becomes unused, free it if ECMD_HIDE is FALSE.
+  	 * If the current buffer was empty and has no file name, curbuf
+! 	 * is returned by buflist_new().
+  	 */
+  	if (buf != curbuf)
+  	{
+--- 3407,3413 ----
+  	 * Make the (new) buffer the one used by the current window.
+  	 * If the old buffer becomes unused, free it if ECMD_HIDE is FALSE.
+  	 * If the current buffer was empty and has no file name, curbuf
+! 	 * is returned by buflist_new(), nothing to do here.
+  	 */
+  	if (buf != curbuf)
+  	{
+***************
+*** 3515,3522 ****
+  	    au_new_curbuf = NULL;
+  #endif
+  	}
+- 	else
+- 	    ++curbuf->b_nwindows;
+  
+  	curwin->w_pcmark.lnum = 1;
+  	curwin->w_pcmark.col = 0;
+--- 3514,3519 ----
+*** ../vim-7.4.644/src/version.c	2015-02-27 18:25:10.820179062 +0100
+--- src/version.c	2015-02-27 19:33:06.153971911 +0100
+***************
+*** 743,744 ****
+--- 743,746 ----
+  {   /* Add new patch number below this line */
++ /**/
++     645,
+  /**/
+
+-- 
+       He was not in the least bit scared to be mashed into a pulp
+       Or to have his eyes gouged out and his elbows broken;
+       To have his kneecaps split and his body burned away
+       And his limbs all hacked and mangled, brave Sir Robin.
+                 "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
+
+ /// Bram Moolenaar -- Bram at 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    ///


More information about the scm-commits mailing list