]> git.pld-linux.org Git - packages/vim.git/blob - 7.0.044
- updated to 0.7.3
[packages/vim.git] / 7.0.044
1 To: vim-dev@vim.org
2 Subject: Patch 7.0.044
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.0.044
11 Problem:    Perl: setting a buffer line in another buffer may result in
12             changing the current buffer.
13 Solution:   Properly change to the buffer to be changed.
14 Files:      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 -- 
206 Momento 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.041845 seconds and 3 git commands to generate.