]> git.pld-linux.org Git - packages/vim.git/blob - 7.2.122
- new
[packages/vim.git] / 7.2.122
1 To: vim-dev@vim.org
2 Subject: Patch 7.2.122
3 Fcc: outbox
4 From: Bram Moolenaar <Bram@moolenaar.net>
5 Mime-Version: 1.0
6 Content-Type: text/plain; charset=ISO-8859-1
7 Content-Transfer-Encoding: 8bit
8 ------------
9
10 Patch 7.2.122
11 Problem:    Invalid memory access when the VimResized autocommand changes
12             'columns' and/or 'lines'.
13 Solution:   After VimResized check for changed values. (Dominique Pelle)
14 Files:      src/screen.c
15
16
17 *** ../vim-7.2.121/src/screen.c Sun Feb 22 01:13:45 2009
18 --- src/screen.c        Sun Feb 22 01:07:38 2009
19 ***************
20 *** 7368,7374 ****
21 --- 7368,7378 ----
22   #endif
23       static int            entered = FALSE;            /* avoid recursiveness */
24       static int            done_outofmem_msg = FALSE;  /* did outofmem message */
25 + #ifdef FEAT_AUTOCMD
26 +     int                   retry_count = 0;
27   
28 + retry:
29 + #endif
30       /*
31        * Allocation of the screen buffers is done only when the size changes and
32        * when Rows and Columns have been set and we have started doing full
33 ***************
34 *** 7643,7650 ****
35       --RedrawingDisabled;
36   
37   #ifdef FEAT_AUTOCMD
38 !     if (starting == 0)
39         apply_autocmds(EVENT_VIMRESIZED, NULL, NULL, FALSE, curbuf);
40   #endif
41   }
42   
43 --- 7647,7663 ----
44       --RedrawingDisabled;
45   
46   #ifdef FEAT_AUTOCMD
47 !     /*
48 !      * Do not apply autocommands more than 3 times to avoid an endless loop
49 !      * in case applying autocommands always changes Rows or Columns.
50 !      */
51 !     if (starting == 0 && ++retry_count <= 3)
52 !     {
53         apply_autocmds(EVENT_VIMRESIZED, NULL, NULL, FALSE, curbuf);
54 +       /* In rare cases, autocommands may have altered Rows or Columns,
55 +        * jump back to check if we need to allocate the screen again. */
56 +       goto retry;
57 +     }
58   #endif
59   }
60   
61 *** ../vim-7.2.121/src/version.c        Sun Feb 22 02:51:37 2009
62 --- src/version.c       Sun Feb 22 21:11:14 2009
63 ***************
64 *** 678,679 ****
65 --- 678,681 ----
66   {   /* Add new patch number below this line */
67 + /**/
68 +     122,
69   /**/
70
71 -- 
72 FIXME and XXX are two common keywords used to mark broken or incomplete code
73 not only since XXX as a sex reference would grab everbodys attention but
74 simply due to the fact that Vim would highlight these words.
75                                         -- Hendrik Scholz
76
77  /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
78 ///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
79 \\\        download, build and distribute -- http://www.A-A-P.org        ///
80  \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
This page took 0.497565 seconds and 3 git commands to generate.