]> git.pld-linux.org Git - packages/vim.git/blame - 7.2.215
- new
[packages/vim.git] / 7.2.215
CommitLineData
ef0610d1
AG
1To: vim-dev@vim.org
2Subject: Patch 7.2.215
3Fcc: outbox
4From: Bram Moolenaar <Bram@moolenaar.net>
5Mime-Version: 1.0
6Content-Type: text/plain; charset=UTF-8
7Content-Transfer-Encoding: 8bit
8------------
9
10Patch 7.2.215
11Problem: ml_get error when using ":vimgrep".
12Solution: Load the memfile for the hidden buffer before putting it in a
13 window. Correct the order of splitting the window and filling
14 the window and buffer with data.
15Files: src/fileio.c, src/proto/window.pro, src/quickfix.c, src/window.c
16
17
18*** ../vim-7.2.214/src/fileio.c 2009-06-24 11:57:53.000000000 +0200
19--- src/fileio.c 2009-06-24 12:53:19.000000000 +0200
20***************
21*** 710,716 ****
22 #endif
23 #ifdef UNIX
24 /* Set swap file protection bits after creating it. */
25! if (swap_mode > 0 && curbuf->b_ml.ml_mfp->mf_fname != NULL)
26 (void)mch_setperm(curbuf->b_ml.ml_mfp->mf_fname, (long)swap_mode);
27 #endif
28 }
29--- 710,717 ----
30 #endif
31 #ifdef UNIX
32 /* Set swap file protection bits after creating it. */
33! if (swap_mode > 0 && curbuf->b_ml.ml_mfp != NULL
34! && curbuf->b_ml.ml_mfp->mf_fname != NULL)
35 (void)mch_setperm(curbuf->b_ml.ml_mfp->mf_fname, (long)swap_mode);
36 #endif
37 }
38***************
39*** 8435,8443 ****
40 * effects, insert it in a the current tab page.
41 * Anything related to a window (e.g., setting folds) may have
42 * unexpected results. */
43! curwin = aucmd_win;
44! curwin->w_buffer = buf;
45 ++buf->b_nwindows;
46
47 #ifdef FEAT_WINDOWS
48 /* Split the current window, put the aucmd_win in the upper half. */
49--- 8436,8444 ----
50 * effects, insert it in a the current tab page.
51 * Anything related to a window (e.g., setting folds) may have
52 * unexpected results. */
53! aucmd_win->w_buffer = buf;
54 ++buf->b_nwindows;
55+ win_init_empty(aucmd_win); /* set cursor and topline to safe values */
56
57 #ifdef FEAT_WINDOWS
58 /* Split the current window, put the aucmd_win in the upper half. */
59***************
60*** 8448,8459 ****
61 (void)win_comp_pos(); /* recompute window positions */
62 p_ea = save_ea;
63 #endif
64! /* set cursor and topline to safe values */
65! curwin_init();
66! #ifdef FEAT_VERTSPLIT
67! curwin->w_wincol = 0;
68! curwin->w_width = Columns;
69! #endif
70 }
71 curbuf = buf;
72 aco->new_curwin = curwin;
73--- 8449,8455 ----
74 (void)win_comp_pos(); /* recompute window positions */
75 p_ea = save_ea;
76 #endif
77! curwin = aucmd_win;
78 }
79 curbuf = buf;
80 aco->new_curwin = curwin;
81*** ../vim-7.2.214/src/proto/window.pro 2009-06-16 16:01:34.000000000 +0200
82--- src/proto/window.pro 2009-06-24 12:53:13.000000000 +0200
83***************
84*** 14,19 ****
85--- 14,20 ----
86 win_T *winframe_remove __ARGS((win_T *win, int *dirp, tabpage_T *tp));
87 void close_others __ARGS((int message, int forceit));
88 void curwin_init __ARGS((void));
89+ void win_init_empty __ARGS((win_T *wp));
90 int win_alloc_first __ARGS((void));
91 void win_alloc_aucmd_win __ARGS((void));
92 void win_init_size __ARGS((void));
93*** ../vim-7.2.214/src/quickfix.c 2009-05-17 13:30:58.000000000 +0200
94--- src/quickfix.c 2009-06-24 15:30:06.000000000 +0200
95***************
96*** 3411,3424 ****
97 /* Init the options. */
98 buf_copy_options(newbuf, BCO_ENTER | BCO_NOHELP);
99
100! /* set curwin/curbuf to buf and save a few things */
101! aucmd_prepbuf(&aco, newbuf);
102
103! /* Need to set the filename for autocommands. */
104! (void)setfname(curbuf, fname, NULL, FALSE);
105
106- if (ml_open(curbuf) == OK)
107- {
108 /* Create swap file now to avoid the ATTENTION message. */
109 check_need_swap(TRUE);
110
111--- 3411,3425 ----
112 /* Init the options. */
113 buf_copy_options(newbuf, BCO_ENTER | BCO_NOHELP);
114
115! /* need to open the memfile before putting the buffer in a window */
116! if (ml_open(newbuf) == OK)
117! {
118! /* set curwin/curbuf to buf and save a few things */
119! aucmd_prepbuf(&aco, newbuf);
120
121! /* Need to set the filename for autocommands. */
122! (void)setfname(curbuf, fname, NULL, FALSE);
123
124 /* Create swap file now to avoid the ATTENTION message. */
125 check_need_swap(TRUE);
126
127***************
128*** 3441,3450 ****
129 newbuf = curbuf;
130 }
131 }
132- }
133
134! /* restore curwin/curbuf and a few other things */
135! aucmd_restbuf(&aco);
136
137 if (!buf_valid(newbuf))
138 return NULL;
139--- 3442,3451 ----
140 newbuf = curbuf;
141 }
142 }
143
144! /* restore curwin/curbuf and a few other things */
145! aucmd_restbuf(&aco);
146! }
147
148 if (!buf_valid(newbuf))
149 return NULL;
150*** ../vim-7.2.214/src/window.c 2009-06-16 16:01:34.000000000 +0200
151--- src/window.c 2009-06-24 14:35:16.000000000 +0200
152***************
153*** 2354,2366 ****
154 frame_T *frp;
155 win_T *wp;
156
157- #ifdef FEAT_FOLDING
158- clearFolding(win);
159- #endif
160-
161- /* reduce the reference count to the argument list. */
162- alist_unlink(win->w_alist);
163-
164 /* Remove the window and its frame from the tree of frames. */
165 frp = win->w_frame;
166 wp = winframe_remove(win, dirp, tp);
167--- 2354,2359 ----
168***************
169*** 2386,2394 ****
170 tabpage_close(TRUE);
171 # endif
172
173- while (firstwin != NULL)
174- (void)win_free_mem(firstwin, &dummy, NULL);
175-
176 # ifdef FEAT_AUTOCMD
177 if (aucmd_win != NULL)
178 {
179--- 2379,2384 ----
180***************
181*** 2396,2401 ****
182--- 2386,2394 ----
183 aucmd_win = NULL;
184 }
185 # endif
186+
187+ while (firstwin != NULL)
188+ (void)win_free_mem(firstwin, &dummy, NULL);
189 }
190 #endif
191
192***************
193*** 3204,3230 ****
194 void
195 curwin_init()
196 {
197! redraw_win_later(curwin, NOT_VALID);
198! curwin->w_lines_valid = 0;
199! curwin->w_cursor.lnum = 1;
200! curwin->w_curswant = curwin->w_cursor.col = 0;
201 #ifdef FEAT_VIRTUALEDIT
202! curwin->w_cursor.coladd = 0;
203 #endif
204! curwin->w_pcmark.lnum = 1; /* pcmark not cleared but set to line 1 */
205! curwin->w_pcmark.col = 0;
206! curwin->w_prev_pcmark.lnum = 0;
207! curwin->w_prev_pcmark.col = 0;
208! curwin->w_topline = 1;
209 #ifdef FEAT_DIFF
210! curwin->w_topfill = 0;
211 #endif
212! curwin->w_botline = 2;
213 #ifdef FEAT_FKMAP
214! if (curwin->w_p_rl)
215! curwin->w_farsi = W_CONV + W_R_L;
216 else
217! curwin->w_farsi = W_CONV;
218 #endif
219 }
220
221--- 3197,3230 ----
222 void
223 curwin_init()
224 {
225! win_init_empty(curwin);
226! }
227!
228! void
229! win_init_empty(wp)
230! win_T *wp;
231! {
232! redraw_win_later(wp, NOT_VALID);
233! wp->w_lines_valid = 0;
234! wp->w_cursor.lnum = 1;
235! wp->w_curswant = wp->w_cursor.col = 0;
236 #ifdef FEAT_VIRTUALEDIT
237! wp->w_cursor.coladd = 0;
238 #endif
239! wp->w_pcmark.lnum = 1; /* pcmark not cleared but set to line 1 */
240! wp->w_pcmark.col = 0;
241! wp->w_prev_pcmark.lnum = 0;
242! wp->w_prev_pcmark.col = 0;
243! wp->w_topline = 1;
244 #ifdef FEAT_DIFF
245! wp->w_topfill = 0;
246 #endif
247! wp->w_botline = 2;
248 #ifdef FEAT_FKMAP
249! if (wp->w_p_rl)
250! wp->w_farsi = W_CONV + W_R_L;
251 else
252! wp->w_farsi = W_CONV;
253 #endif
254 }
255
256***************
257*** 4325,4330 ****
258--- 4325,4337 ----
259 {
260 int i;
261
262+ #ifdef FEAT_FOLDING
263+ clearFolding(wp);
264+ #endif
265+
266+ /* reduce the reference count to the argument list. */
267+ alist_unlink(wp->w_alist);
268+
269 #ifdef FEAT_AUTOCMD
270 /* Don't execute autocommands while the window is halfway being deleted.
271 * gui_mch_destroy_scrollbar() may trigger a FocusGained event. */
272***************
273*** 4387,4393 ****
274 }
275 #endif /* FEAT_GUI */
276
277! win_remove(wp, tp);
278 vim_free(wp);
279
280 #ifdef FEAT_AUTOCMD
281--- 4394,4403 ----
282 }
283 #endif /* FEAT_GUI */
284
285! #ifdef FEAT_AUTOCMD
286! if (wp != aucmd_win)
287! #endif
288! win_remove(wp, tp);
289 vim_free(wp);
290
291 #ifdef FEAT_AUTOCMD
292*** ../vim-7.2.214/src/version.c 2009-06-24 17:04:40.000000000 +0200
293--- src/version.c 2009-06-24 17:27:38.000000000 +0200
294***************
295*** 678,679 ****
296--- 678,681 ----
297 { /* Add new patch number below this line */
298+ /**/
299+ 215,
300 /**/
301
302--
303Micro$oft: where do you want to go today?
304 Linux: where do you want to go tomorrow?
305 FreeBSD: are you guys coming, or what?
306
307 /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
308/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
309\\\ download, build and distribute -- http://www.A-A-P.org ///
310 \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
This page took 0.070652 seconds and 4 git commands to generate.