diff --git a/7.3.472 b/7.3.472 new file mode 100644 index 0000000..217b2fc --- /dev/null +++ b/7.3.472 @@ -0,0 +1,88 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.472 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.472 +Problem: Crash when using ":redraw" in a BufEnter autocommand and + switching to another tab. (驼峰) +Solution: Move triggering the the autocommands to after correcting the + option values. Also check the row value to be out of bounds. + (Christian Brabandt, Sergey Khorev) +Files: src/screen.c, src/window.c + + +*** ../vim-7.3.471/src/screen.c 2012-02-04 23:34:57.000000000 +0100 +--- src/screen.c 2012-03-16 18:59:20.000000000 +0100 +*************** +*** 5371,5376 **** +--- 5371,5382 ---- + # define CHAR_CELLS 1 + #endif + ++ /* Check for illegal row and col, just in case. */ ++ if (row >= Rows) ++ row = Rows - 1; ++ if (endcol > Columns) ++ endcol = Columns; ++ + # ifdef FEAT_CLIPBOARD + clip_may_clear_selection(row, row); + # endif +*** ../vim-7.3.471/src/window.c 2012-02-22 14:58:24.000000000 +0100 +--- src/window.c 2012-03-16 18:43:01.000000000 +0100 +*************** +*** 3676,3688 **** + win_enter_ext(tp->tp_curwin, FALSE, TRUE); + prevwin = next_prevwin; + +- #ifdef FEAT_AUTOCMD +- apply_autocmds(EVENT_TABENTER, NULL, NULL, FALSE, curbuf); +- +- if (old_curbuf != curbuf) +- apply_autocmds(EVENT_BUFENTER, NULL, NULL, FALSE, curbuf); +- #endif +- + last_status(FALSE); /* status line may appear or disappear */ + (void)win_comp_pos(); /* recompute w_winrow for all windows */ + must_redraw = CLEAR; /* need to redraw everything */ +--- 3676,3681 ---- +*************** +*** 3712,3717 **** +--- 3705,3718 ---- + gui_may_update_scrollbars(); + #endif + ++ #ifdef FEAT_AUTOCMD ++ /* Apply autocommands after updating the display, when 'rows' and ++ * 'columns' have been set correctly. */ ++ apply_autocmds(EVENT_TABENTER, NULL, NULL, FALSE, curbuf); ++ if (old_curbuf != curbuf) ++ apply_autocmds(EVENT_BUFENTER, NULL, NULL, FALSE, curbuf); ++ #endif ++ + redraw_all_later(CLEAR); + } + +*** ../vim-7.3.471/src/version.c 2012-03-16 14:32:10.000000000 +0100 +--- src/version.c 2012-03-16 19:02:53.000000000 +0100 +*************** +*** 716,717 **** +--- 716,719 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 472, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +200. You really believe in the concept of a "paperless" office. + + /// 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 ///