81 lines
2.4 KiB
Plaintext
81 lines
2.4 KiB
Plaintext
To: vim-dev@vim.org
|
|
Subject: Patch 7.2.122
|
|
Fcc: outbox
|
|
From: Bram Moolenaar <Bram@moolenaar.net>
|
|
Mime-Version: 1.0
|
|
Content-Type: text/plain; charset=ISO-8859-1
|
|
Content-Transfer-Encoding: 8bit
|
|
------------
|
|
|
|
Patch 7.2.122
|
|
Problem: Invalid memory access when the VimResized autocommand changes
|
|
'columns' and/or 'lines'.
|
|
Solution: After VimResized check for changed values. (Dominique Pelle)
|
|
Files: src/screen.c
|
|
|
|
|
|
*** ../vim-7.2.121/src/screen.c Sun Feb 22 01:13:45 2009
|
|
--- src/screen.c Sun Feb 22 01:07:38 2009
|
|
***************
|
|
*** 7368,7374 ****
|
|
--- 7368,7378 ----
|
|
#endif
|
|
static int entered = FALSE; /* avoid recursiveness */
|
|
static int done_outofmem_msg = FALSE; /* did outofmem message */
|
|
+ #ifdef FEAT_AUTOCMD
|
|
+ int retry_count = 0;
|
|
|
|
+ retry:
|
|
+ #endif
|
|
/*
|
|
* Allocation of the screen buffers is done only when the size changes and
|
|
* when Rows and Columns have been set and we have started doing full
|
|
***************
|
|
*** 7643,7650 ****
|
|
--RedrawingDisabled;
|
|
|
|
#ifdef FEAT_AUTOCMD
|
|
! if (starting == 0)
|
|
apply_autocmds(EVENT_VIMRESIZED, NULL, NULL, FALSE, curbuf);
|
|
#endif
|
|
}
|
|
|
|
--- 7647,7663 ----
|
|
--RedrawingDisabled;
|
|
|
|
#ifdef FEAT_AUTOCMD
|
|
! /*
|
|
! * Do not apply autocommands more than 3 times to avoid an endless loop
|
|
! * in case applying autocommands always changes Rows or Columns.
|
|
! */
|
|
! if (starting == 0 && ++retry_count <= 3)
|
|
! {
|
|
apply_autocmds(EVENT_VIMRESIZED, NULL, NULL, FALSE, curbuf);
|
|
+ /* In rare cases, autocommands may have altered Rows or Columns,
|
|
+ * jump back to check if we need to allocate the screen again. */
|
|
+ goto retry;
|
|
+ }
|
|
#endif
|
|
}
|
|
|
|
*** ../vim-7.2.121/src/version.c Sun Feb 22 02:51:37 2009
|
|
--- src/version.c Sun Feb 22 21:11:14 2009
|
|
***************
|
|
*** 678,679 ****
|
|
--- 678,681 ----
|
|
{ /* Add new patch number below this line */
|
|
+ /**/
|
|
+ 122,
|
|
/**/
|
|
|
|
--
|
|
FIXME and XXX are two common keywords used to mark broken or incomplete code
|
|
not only since XXX as a sex reference would grab everbodys attention but
|
|
simply due to the fact that Vim would highlight these words.
|
|
-- Hendrik Scholz
|
|
|
|
/// Bram Moolenaar -- Bram@Moolenaar.net -- 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 ///
|