1 To: vim_dev@googlegroups.com
4 From: Bram Moolenaar <Bram@moolenaar.net>
6 Content-Type: text/plain; charset=UTF-8
7 Content-Transfer-Encoding: 8bit
11 Problem: Crash when an autocommand wipes out a buffer when it is hidden.
12 Solution: Restore the current window when needed. (Christian Brabandt)
16 *** ../vim-7.3.556/src/buffer.c 2012-06-13 14:28:16.000000000 +0200
17 --- src/buffer.c 2012-06-20 11:49:54.000000000 +0200
25 int unload = (action == DOBUF_UNLOAD || action == DOBUF_DEL
26 || action == DOBUF_WIPE);
30 if (buf_valid(prevbuf))
33 if (prevbuf == curbuf)
35 close_buffer(prevbuf == curwin->w_buffer ? curwin : NULL, prevbuf,
36 unload ? action : (action == DOBUF_GOTO
38 && !bufIsChanged(prevbuf)) ? DOBUF_UNLOAD : 0, FALSE);
42 /* An autocommand may have deleted "buf", already entered it (e.g., when
43 ! * it did ":bunload") or aborted the script processing! */
45 ! if (buf_valid(buf) && buf != curbuf && !aborting())
47 ! if (buf_valid(buf) && buf != curbuf)
53 if (buf_valid(prevbuf))
57 if (prevbuf == curbuf)
59 close_buffer(prevbuf == curwin->w_buffer ? curwin : NULL, prevbuf,
60 unload ? action : (action == DOBUF_GOTO
62 && !bufIsChanged(prevbuf)) ? DOBUF_UNLOAD : 0, FALSE);
63 + if (curwin != prevwin && win_valid(prevwin))
64 + /* autocommands changed curwin, Grr! */
69 /* An autocommand may have deleted "buf", already entered it (e.g., when
70 ! * it did ":bunload") or aborted the script processing!
71 ! * If curwin->w_buffer is null, enter_buffer() will make it valid again */
72 ! if ((buf_valid(buf) && buf != curbuf
77 ! ) || curwin->w_buffer == NULL
83 *** ../vim-7.3.556/src/version.c 2012-06-14 20:59:20.000000000 +0200
84 --- src/version.c 2012-06-20 11:53:56.000000000 +0200
88 { /* Add new patch number below this line */
94 Don't read everything you believe.
96 /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
97 /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
98 \\\ an exciting new programming language -- http://www.Zimbu.org ///
99 \\\ help me help AIDS victims -- http://ICCF-Holland.org ///