diff options
Diffstat (limited to 'source/ap/vim/patches/7.3.306')
-rw-r--r-- | source/ap/vim/patches/7.3.306 | 244 |
1 files changed, 0 insertions, 244 deletions
diff --git a/source/ap/vim/patches/7.3.306 b/source/ap/vim/patches/7.3.306 deleted file mode 100644 index 62bd4cfce..000000000 --- a/source/ap/vim/patches/7.3.306 +++ /dev/null @@ -1,244 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.3.306 -Fcc: outbox -From: Bram Moolenaar <Bram@moolenaar.net> -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.3.306 -Problem: When closing a window there is a chance that deleting a scrollbar - triggers a GUI resize, which uses the window while it is not in a - valid state. -Solution: Set the buffer pointer to NULL to be able to detect the invalid - situation. Fix a few places that used the buffer pointer - incorrectly. -Files: src/buffer.c, src/ex_cmds.c, src/term.c, src/window.c - - -*** ../vim-7.3.305/src/buffer.c 2011-05-19 13:40:47.000000000 +0200 ---- src/buffer.c 2011-09-10 13:46:59.000000000 +0200 -*************** -*** 416,421 **** ---- 416,423 ---- - #endif - - buf_freeall(buf, (del_buf ? BFA_DEL : 0) + (wipe_buf ? BFA_WIPE : 0)); -+ if (win_valid(win) && win->w_buffer == buf) -+ win->w_buffer = NULL; /* make sure we don't use the buffer now */ - - #ifdef FEAT_AUTOCMD - /* Autocommands may have deleted the buffer. */ -*************** -*** 560,565 **** ---- 562,571 ---- - #ifdef FEAT_DIFF - diff_buf_delete(buf); /* Can't use 'diff' for unloaded buffer. */ - #endif -+ #ifdef FEAT_SYN_HL -+ if (curwin->w_buffer == buf) -+ reset_synblock(curwin); /* remove any ownsyntax */ -+ #endif - - #ifdef FEAT_FOLDING - /* No folds in an empty buffer. */ -*************** -*** 1346,1351 **** ---- 1352,1361 ---- - # endif - #endif - { -+ #ifdef FEAT_SYN_HL -+ if (prevbuf == curwin->w_buffer) -+ reset_synblock(curwin); -+ #endif - #ifdef FEAT_WINDOWS - if (unload) - close_windows(prevbuf, FALSE); -*************** -*** 1395,1404 **** - foldUpdateAll(curwin); /* update folds (later). */ - #endif - -- #ifdef FEAT_SYN_HL -- reset_synblock(curwin); -- curwin->w_s = &(buf->b_s); -- #endif - /* Get the buffer in the current window. */ - curwin->w_buffer = buf; - curbuf = buf; ---- 1405,1410 ---- -*************** -*** 1409,1414 **** ---- 1415,1424 ---- - diff_buf_add(curbuf); - #endif - -+ #ifdef FEAT_SYN_HL -+ curwin->w_s = &(buf->b_s); -+ #endif -+ - /* Cursor on first line by default. */ - curwin->w_cursor.lnum = 1; - curwin->w_cursor.col = 0; -*** ../vim-7.3.305/src/ex_cmds.c 2011-07-07 16:20:45.000000000 +0200 ---- src/ex_cmds.c 2011-09-10 13:39:13.000000000 +0200 -*************** -*** 3619,3628 **** - */ - check_arg_idx(curwin); - -- #ifdef FEAT_SYN_HL -- reset_synblock(curwin); /* remove any ownsyntax */ -- #endif -- - #ifdef FEAT_AUTOCMD - if (!auto_buf) - #endif ---- 3619,3624 ---- -*** ../vim-7.3.305/src/term.c 2011-05-10 16:41:13.000000000 +0200 ---- src/term.c 2011-09-14 14:39:39.000000000 +0200 -*************** -*** 3017,3028 **** - if (width < 0 || height < 0) /* just checking... */ - return; - -! if (State == HITRETURN || State == SETWSIZE) /* postpone the resizing */ - { - State = SETWSIZE; - return; - } - - ++busy; - - #ifdef AMIGA ---- 3017,3036 ---- - if (width < 0 || height < 0) /* just checking... */ - return; - -! if (State == HITRETURN || State == SETWSIZE) - { -+ /* postpone the resizing */ - State = SETWSIZE; - return; - } - -+ /* curwin->w_buffer can be NULL when we are closing a window and the -+ * buffer has already been closed and removing a scrollbar causes a resize -+ * event. Don't resize then, it will happen after entering another buffer. -+ */ -+ if (curwin->w_buffer == NULL) -+ return; -+ - ++busy; - - #ifdef AMIGA -*** ../vim-7.3.305/src/window.c 2011-01-08 14:45:57.000000000 +0100 ---- src/window.c 2011-09-10 14:04:56.000000000 +0200 -*************** -*** 1226,1240 **** - } - newp->w_tagstackidx = oldp->w_tagstackidx; - newp->w_tagstacklen = oldp->w_tagstacklen; -! # ifdef FEAT_FOLDING - copyFoldingState(oldp, newp); -! # endif - - win_init_some(newp, oldp); - -! # ifdef FEAT_SYN_HL - check_colorcolumn(newp); -! # endif - } - - /* ---- 1226,1240 ---- - } - newp->w_tagstackidx = oldp->w_tagstackidx; - newp->w_tagstacklen = oldp->w_tagstacklen; -! #ifdef FEAT_FOLDING - copyFoldingState(oldp, newp); -! #endif - - win_init_some(newp, oldp); - -! #ifdef FEAT_SYN_HL - check_colorcolumn(newp); -! #endif - } - - /* -*************** -*** 2212,2217 **** ---- 2212,2222 ---- - out_flush(); - #endif - -+ #ifdef FEAT_SYN_HL -+ /* Free independent synblock before the buffer is freed. */ -+ reset_synblock(win); -+ #endif -+ - /* - * Close the link to the buffer. - */ -*************** -*** 2222,2228 **** - if (!win_valid(win) || last_window() || curtab != prev_curtab) - return; - -! /* Free the memory used for the window. */ - wp = win_free_mem(win, &dir, NULL); - - /* Make sure curwin isn't invalid. It can cause severe trouble when ---- 2227,2234 ---- - if (!win_valid(win) || last_window() || curtab != prev_curtab) - return; - -! /* Free the memory used for the window and get the window that received -! * the screen space. */ - wp = win_free_mem(win, &dir, NULL); - - /* Make sure curwin isn't invalid. It can cause severe trouble when -*************** -*** 3247,3252 **** ---- 3253,3261 ---- - else - wp->w_farsi = W_CONV; - #endif -+ #ifdef FEAT_SYN_HL -+ wp->w_s = &wp->w_buffer->b_s; -+ #endif - } - - /* -*************** -*** 4437,4443 **** - #endif /* FEAT_GUI */ - - #ifdef FEAT_SYN_HL -- reset_synblock(wp); /* free independent synblock */ - vim_free(wp->w_p_cc_cols); - #endif - ---- 4446,4451 ---- -*** ../vim-7.3.305/src/version.c 2011-09-14 14:33:47.000000000 +0200 ---- src/version.c 2011-09-14 14:35:30.000000000 +0200 -*************** -*** 711,712 **** ---- 711,714 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 306, - /**/ - --- -A consultant is a person who takes your money and annoys your employees while -tirelessly searching for the best way to extend the consulting contract. - (Scott Adams - The Dilbert principle) - - /// Bram Moolenaar -- Bram@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 /// |