]>
Commit | Line | Data |
---|---|---|
215fbeef AG |
1 | To: vim-dev@vim.org |
2 | Subject: Patch 7.1.315 | |
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.1.315 | |
11 | Problem: Crash with specific search pattern using look-behind match. | |
12 | (Andreas Politz) | |
13 | Solution: Also save the value of "need_clear_subexpr". | |
14 | Files: src/regexp.c | |
15 | ||
16 | ||
17 | *** ../vim-7.1.314/src/regexp.c Wed Apr 9 12:14:44 2008 | |
18 | --- src/regexp.c Sun Jun 15 14:16:40 2008 | |
19 | *************** | |
20 | *** 3044,3049 **** | |
21 | --- 3044,3050 ---- | |
22 | { | |
23 | regsave_T save_after; | |
24 | regsave_T save_behind; | |
25 | + int save_need_clear_subexpr; | |
26 | save_se_T save_start[NSUBEXP]; | |
27 | save_se_T save_end[NSUBEXP]; | |
28 | } regbehind_T; | |
29 | *************** | |
30 | *** 5858,5874 **** | |
31 | { | |
32 | int i; | |
33 | ||
34 | ! for (i = 0; i < NSUBEXP; ++i) | |
35 | { | |
36 | ! if (REG_MULTI) | |
37 | ! { | |
38 | ! bp->save_start[i].se_u.pos = reg_startpos[i]; | |
39 | ! bp->save_end[i].se_u.pos = reg_endpos[i]; | |
40 | ! } | |
41 | ! else | |
42 | { | |
43 | ! bp->save_start[i].se_u.ptr = reg_startp[i]; | |
44 | ! bp->save_end[i].se_u.ptr = reg_endp[i]; | |
45 | } | |
46 | } | |
47 | } | |
48 | --- 5859,5881 ---- | |
49 | { | |
50 | int i; | |
51 | ||
52 | ! /* When "need_clear_subexpr" is set we don't need to save the values, only | |
53 | ! * remember that this flag needs to be set again when restoring. */ | |
54 | ! bp->save_need_clear_subexpr = need_clear_subexpr; | |
55 | ! if (!need_clear_subexpr) | |
56 | { | |
57 | ! for (i = 0; i < NSUBEXP; ++i) | |
58 | { | |
59 | ! if (REG_MULTI) | |
60 | ! { | |
61 | ! bp->save_start[i].se_u.pos = reg_startpos[i]; | |
62 | ! bp->save_end[i].se_u.pos = reg_endpos[i]; | |
63 | ! } | |
64 | ! else | |
65 | ! { | |
66 | ! bp->save_start[i].se_u.ptr = reg_startp[i]; | |
67 | ! bp->save_end[i].se_u.ptr = reg_endp[i]; | |
68 | ! } | |
69 | } | |
70 | } | |
71 | } | |
72 | *************** | |
73 | *** 5882,5898 **** | |
74 | { | |
75 | int i; | |
76 | ||
77 | ! for (i = 0; i < NSUBEXP; ++i) | |
78 | { | |
79 | ! if (REG_MULTI) | |
80 | ! { | |
81 | ! reg_startpos[i] = bp->save_start[i].se_u.pos; | |
82 | ! reg_endpos[i] = bp->save_end[i].se_u.pos; | |
83 | ! } | |
84 | ! else | |
85 | { | |
86 | ! reg_startp[i] = bp->save_start[i].se_u.ptr; | |
87 | ! reg_endp[i] = bp->save_end[i].se_u.ptr; | |
88 | } | |
89 | } | |
90 | } | |
91 | --- 5889,5910 ---- | |
92 | { | |
93 | int i; | |
94 | ||
95 | ! /* Only need to restore saved values when they are not to be cleared. */ | |
96 | ! need_clear_subexpr = bp->save_need_clear_subexpr; | |
97 | ! if (!need_clear_subexpr) | |
98 | { | |
99 | ! for (i = 0; i < NSUBEXP; ++i) | |
100 | { | |
101 | ! if (REG_MULTI) | |
102 | ! { | |
103 | ! reg_startpos[i] = bp->save_start[i].se_u.pos; | |
104 | ! reg_endpos[i] = bp->save_end[i].se_u.pos; | |
105 | ! } | |
106 | ! else | |
107 | ! { | |
108 | ! reg_startp[i] = bp->save_start[i].se_u.ptr; | |
109 | ! reg_endp[i] = bp->save_end[i].se_u.ptr; | |
110 | ! } | |
111 | } | |
112 | } | |
113 | } | |
114 | *** ../vim-7.1.314/src/version.c Mon Jun 9 17:07:13 2008 | |
115 | --- src/version.c Sun Jun 15 14:12:54 2008 | |
116 | *************** | |
117 | *** 668,669 **** | |
118 | --- 673,676 ---- | |
119 | { /* Add new patch number below this line */ | |
120 | + /**/ | |
121 | + 315, | |
122 | /**/ | |
123 | ||
124 | -- | |
125 | Tips for aliens in New York: Land anywhere. Central Park, anywhere. | |
126 | No one will care or indeed even notice. | |
127 | -- Douglas Adams, "The Hitchhiker's Guide to the Galaxy" | |
128 | ||
129 | /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ | |
130 | /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ | |
131 | \\\ download, build and distribute -- http://www.A-A-P.org /// | |
132 | \\\ help me help AIDS victims -- http://ICCF-Holland.org /// |