Mirror of the Vim source from https://github.com/vim/vim
Revision | a07007166d518f51749cc9e145afeb023638a415 (tree) |
---|---|
Time | 2006-08-08 23:45:44 |
Author | vimboss |
Commiter | vimboss |
updated for version 7.0-044
@@ -1056,7 +1056,6 @@ | ||
1056 | 1056 | int i; |
1057 | 1057 | long lnum; |
1058 | 1058 | char *line; |
1059 | - buf_T *savebuf; | |
1060 | 1059 | PPCODE: |
1061 | 1060 | if (buf_valid(vimbuf)) |
1062 | 1061 | { |
@@ -1069,14 +1068,31 @@ | ||
1069 | 1068 | line = SvPV(ST(i),PL_na); |
1070 | 1069 | if (lnum > 0 && lnum <= vimbuf->b_ml.ml_line_count && line != NULL) |
1071 | 1070 | { |
1072 | - savebuf = curbuf; | |
1071 | + #ifdef FEAT_AUTOCMD | |
1072 | + aco_save_T aco; | |
1073 | + | |
1074 | + /* set curwin/curbuf for "vimbuf" and save some things */ | |
1075 | + aucmd_prepbuf(&aco, vimbuf); | |
1076 | + #else | |
1077 | + buf_T *save_curbuf = curbuf; | |
1078 | + | |
1073 | 1079 | curbuf = vimbuf; |
1080 | + curwin->w_buffer = vimbuf; | |
1081 | + #endif | |
1074 | 1082 | if (u_savesub(lnum) == OK) |
1075 | 1083 | { |
1076 | 1084 | ml_replace(lnum, (char_u *)line, TRUE); |
1077 | 1085 | changed_bytes(lnum, 0); |
1078 | 1086 | } |
1079 | - curbuf = savebuf; | |
1087 | + | |
1088 | + #ifdef FEAT_AUTOCMD | |
1089 | + /* restore curwin/curbuf and a few other things */ | |
1090 | + aucmd_restbuf(&aco); | |
1091 | + /* Careful: autocommands may have made "vimbuf" invalid! */ | |
1092 | + #else | |
1093 | + curwin->w_buffer = save_curbuf; | |
1094 | + curbuf = save_curbuf; | |
1095 | + #endif | |
1080 | 1096 | } |
1081 | 1097 | } |
1082 | 1098 | } |
@@ -1087,7 +1103,6 @@ | ||
1087 | 1103 | |
1088 | 1104 | PREINIT: |
1089 | 1105 | long i, lnum = 0, count = 0; |
1090 | - buf_T *savebuf; | |
1091 | 1106 | PPCODE: |
1092 | 1107 | if (buf_valid(vimbuf)) |
1093 | 1108 | { |
@@ -1114,16 +1129,31 @@ | ||
1114 | 1129 | { |
1115 | 1130 | if (lnum > 0 && lnum <= vimbuf->b_ml.ml_line_count) |
1116 | 1131 | { |
1117 | - savebuf = curbuf; | |
1132 | + buf_T *save_curbuf = curbuf; | |
1133 | + #ifdef FEAT_AUTOCMD | |
1134 | + aco_save_T aco; | |
1135 | + | |
1136 | + /* set curwin/curbuf for "vimbuf" and save some things */ | |
1137 | + aucmd_prepbuf(&aco, vimbuf); | |
1138 | + #else | |
1118 | 1139 | curbuf = vimbuf; |
1140 | + curwin->w_buffer = vimbuf; | |
1141 | + #endif | |
1119 | 1142 | if (u_savedel(lnum, 1) == OK) |
1120 | 1143 | { |
1121 | 1144 | ml_delete(lnum, 0); |
1122 | 1145 | deleted_lines_mark(lnum, 1L); |
1123 | - if (savebuf == curbuf) | |
1146 | + if (save_curbuf == curbuf) | |
1124 | 1147 | check_cursor(); |
1125 | 1148 | } |
1126 | - curbuf = savebuf; | |
1149 | + #ifdef FEAT_AUTOCMD | |
1150 | + /* restore curwin/curbuf and a few other things */ | |
1151 | + aucmd_restbuf(&aco); | |
1152 | + /* Careful: autocommands may have made "vimbuf" invalid! */ | |
1153 | + #else | |
1154 | + curwin->w_buffer = save_curbuf; | |
1155 | + curbuf = save_curbuf; | |
1156 | + #endif | |
1127 | 1157 | update_curbuf(VALID); |
1128 | 1158 | } |
1129 | 1159 | } |
@@ -1138,7 +1168,6 @@ | ||
1138 | 1168 | int i; |
1139 | 1169 | long lnum; |
1140 | 1170 | char *line; |
1141 | - buf_T *savebuf; | |
1142 | 1171 | PPCODE: |
1143 | 1172 | if (buf_valid(vimbuf)) |
1144 | 1173 | { |
@@ -1151,14 +1180,31 @@ | ||
1151 | 1180 | line = SvPV(ST(i),PL_na); |
1152 | 1181 | if (lnum >= 0 && lnum <= vimbuf->b_ml.ml_line_count && line != NULL) |
1153 | 1182 | { |
1154 | - savebuf = curbuf; | |
1183 | + #ifdef FEAT_AUTOCMD | |
1184 | + aco_save_T aco; | |
1185 | + | |
1186 | + /* set curwin/curbuf for "vimbuf" and save some things */ | |
1187 | + aucmd_prepbuf(&aco, vimbuf); | |
1188 | + #else | |
1189 | + buf_T *save_curbuf = curbuf; | |
1190 | + | |
1155 | 1191 | curbuf = vimbuf; |
1192 | + curwin->w_buffer = vimbuf; | |
1193 | + #endif | |
1156 | 1194 | if (u_inssub(lnum + 1) == OK) |
1157 | 1195 | { |
1158 | 1196 | ml_append(lnum, (char_u *)line, (colnr_T)0, FALSE); |
1159 | 1197 | appended_lines_mark(lnum, 1L); |
1160 | 1198 | } |
1161 | - curbuf = savebuf; | |
1199 | + | |
1200 | + #ifdef FEAT_AUTOCMD | |
1201 | + /* restore curwin/curbuf and a few other things */ | |
1202 | + aucmd_restbuf(&aco); | |
1203 | + /* Careful: autocommands may have made "vimbuf" invalid! */ | |
1204 | + #else | |
1205 | + curwin->w_buffer = save_curbuf; | |
1206 | + curbuf = save_curbuf; | |
1207 | + #endif | |
1162 | 1208 | update_curbuf(VALID); |
1163 | 1209 | } |
1164 | 1210 | } |
@@ -667,6 +667,8 @@ | ||
667 | 667 | static int included_patches[] = |
668 | 668 | { /* Add new patch number below this line */ |
669 | 669 | /**/ |
670 | + 44, | |
671 | +/**/ | |
670 | 672 | 43, |
671 | 673 | /**/ |
672 | 674 | 42, |