]> git.pld-linux.org Git - packages/vim.git/blame - 7.0.044
- updated to 1.15
[packages/vim.git] / 7.0.044
CommitLineData
1242c4cb
AG
1To: vim-dev@vim.org
2Subject: Patch 7.0.044
3Fcc: outbox
4From: Bram Moolenaar <Bram@moolenaar.net>
5Mime-Version: 1.0
6Content-Type: text/plain; charset=ISO-8859-1
7Content-Transfer-Encoding: 8bit
8------------
9
10Patch 7.0.044
11Problem: Perl: setting a buffer line in another buffer may result in
12 changing the current buffer.
13Solution: Properly change to the buffer to be changed.
14Files: src/if_perl.xs
15
16
17*** ../vim-7.0.043/src/if_perl.xs Tue Mar 7 00:18:16 2006
18--- src/if_perl.xs Thu Jun 22 21:22:18 2006
19***************
20*** 1056,1062 ****
21 int i;
22 long lnum;
23 char *line;
24- buf_T *savebuf;
25 PPCODE:
26 if (buf_valid(vimbuf))
27 {
28--- 1056,1061 ----
29***************
30*** 1069,1082 ****
31 line = SvPV(ST(i),PL_na);
32 if (lnum > 0 && lnum <= vimbuf->b_ml.ml_line_count && line != NULL)
33 {
34! savebuf = curbuf;
35 curbuf = vimbuf;
36 if (u_savesub(lnum) == OK)
37 {
38 ml_replace(lnum, (char_u *)line, TRUE);
39 changed_bytes(lnum, 0);
40 }
41! curbuf = savebuf;
42 }
43 }
44 }
45--- 1068,1098 ----
46 line = SvPV(ST(i),PL_na);
47 if (lnum > 0 && lnum <= vimbuf->b_ml.ml_line_count && line != NULL)
48 {
49! #ifdef FEAT_AUTOCMD
50! aco_save_T aco;
51!
52! /* set curwin/curbuf for "vimbuf" and save some things */
53! aucmd_prepbuf(&aco, vimbuf);
54! #else
55! buf_T *save_curbuf = curbuf;
56!
57 curbuf = vimbuf;
58+ curwin->w_buffer = vimbuf;
59+ #endif
60 if (u_savesub(lnum) == OK)
61 {
62 ml_replace(lnum, (char_u *)line, TRUE);
63 changed_bytes(lnum, 0);
64 }
65!
66! #ifdef FEAT_AUTOCMD
67! /* restore curwin/curbuf and a few other things */
68! aucmd_restbuf(&aco);
69! /* Careful: autocommands may have made "vimbuf" invalid! */
70! #else
71! curwin->w_buffer = save_curbuf;
72! curbuf = save_curbuf;
73! #endif
74 }
75 }
76 }
77***************
78*** 1087,1093 ****
79
80 PREINIT:
81 long i, lnum = 0, count = 0;
82- buf_T *savebuf;
83 PPCODE:
84 if (buf_valid(vimbuf))
85 {
86--- 1103,1108 ----
87***************
88*** 1114,1129 ****
89 {
90 if (lnum > 0 && lnum <= vimbuf->b_ml.ml_line_count)
91 {
92! savebuf = curbuf;
93 curbuf = vimbuf;
94 if (u_savedel(lnum, 1) == OK)
95 {
96 ml_delete(lnum, 0);
97 deleted_lines_mark(lnum, 1L);
98! if (savebuf == curbuf)
99 check_cursor();
100 }
101! curbuf = savebuf;
102 update_curbuf(VALID);
103 }
104 }
105--- 1129,1159 ----
106 {
107 if (lnum > 0 && lnum <= vimbuf->b_ml.ml_line_count)
108 {
109! buf_T *save_curbuf = curbuf;
110! #ifdef FEAT_AUTOCMD
111! aco_save_T aco;
112!
113! /* set curwin/curbuf for "vimbuf" and save some things */
114! aucmd_prepbuf(&aco, vimbuf);
115! #else
116 curbuf = vimbuf;
117+ curwin->w_buffer = vimbuf;
118+ #endif
119 if (u_savedel(lnum, 1) == OK)
120 {
121 ml_delete(lnum, 0);
122 deleted_lines_mark(lnum, 1L);
123! if (save_curbuf == curbuf)
124 check_cursor();
125 }
126! #ifdef FEAT_AUTOCMD
127! /* restore curwin/curbuf and a few other things */
128! aucmd_restbuf(&aco);
129! /* Careful: autocommands may have made "vimbuf" invalid! */
130! #else
131! curwin->w_buffer = save_curbuf;
132! curbuf = save_curbuf;
133! #endif
134 update_curbuf(VALID);
135 }
136 }
137***************
138*** 1138,1144 ****
139 int i;
140 long lnum;
141 char *line;
142- buf_T *savebuf;
143 PPCODE:
144 if (buf_valid(vimbuf))
145 {
146--- 1168,1173 ----
147***************
148*** 1151,1164 ****
149 line = SvPV(ST(i),PL_na);
150 if (lnum >= 0 && lnum <= vimbuf->b_ml.ml_line_count && line != NULL)
151 {
152! savebuf = curbuf;
153 curbuf = vimbuf;
154 if (u_inssub(lnum + 1) == OK)
155 {
156 ml_append(lnum, (char_u *)line, (colnr_T)0, FALSE);
157 appended_lines_mark(lnum, 1L);
158 }
159! curbuf = savebuf;
160 update_curbuf(VALID);
161 }
162 }
163--- 1180,1210 ----
164 line = SvPV(ST(i),PL_na);
165 if (lnum >= 0 && lnum <= vimbuf->b_ml.ml_line_count && line != NULL)
166 {
167! #ifdef FEAT_AUTOCMD
168! aco_save_T aco;
169!
170! /* set curwin/curbuf for "vimbuf" and save some things */
171! aucmd_prepbuf(&aco, vimbuf);
172! #else
173! buf_T *save_curbuf = curbuf;
174!
175 curbuf = vimbuf;
176+ curwin->w_buffer = vimbuf;
177+ #endif
178 if (u_inssub(lnum + 1) == OK)
179 {
180 ml_append(lnum, (char_u *)line, (colnr_T)0, FALSE);
181 appended_lines_mark(lnum, 1L);
182 }
183!
184! #ifdef FEAT_AUTOCMD
185! /* restore curwin/curbuf and a few other things */
186! aucmd_restbuf(&aco);
187! /* Careful: autocommands may have made "vimbuf" invalid! */
188! #else
189! curwin->w_buffer = save_curbuf;
190! curbuf = save_curbuf;
191! #endif
192 update_curbuf(VALID);
193 }
194 }
195*** ../vim-7.0.043/src/version.c Tue Aug 8 16:30:51 2006
196--- src/version.c Tue Aug 8 16:45:40 2006
197***************
198*** 668,669 ****
199--- 668,671 ----
200 { /* Add new patch number below this line */
201+ /**/
202+ 44,
203 /**/
204
205--
206Momento mori, ergo carpe diem
207
208 /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
209/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
210\\\ download, build and distribute -- http://www.A-A-P.org ///
211 \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
This page took 0.060923 seconds and 4 git commands to generate.