Mercurial > emacs
comparison src/buffer.c @ 11889:1067ddd12dfc
(set_buffer_internal_1): New subroutine.
(Fmove_overlay): Don't set windows_or_buffers_changed.
| author | Karl Heuer <kwzh@gnu.org> |
|---|---|
| date | Wed, 24 May 1995 00:43:27 +0000 |
| parents | 92a61e91ec05 |
| children | ee38e93ccf7e |
comparison
equal
deleted
inserted
replaced
| 11888:23ec1c193810 | 11889:1067ddd12dfc |
|---|---|
| 98 buffer_slot_type_mismatch will signal an error. */ | 98 buffer_slot_type_mismatch will signal an error. */ |
| 99 struct buffer buffer_local_types; | 99 struct buffer buffer_local_types; |
| 100 | 100 |
| 101 Lisp_Object Fset_buffer (); | 101 Lisp_Object Fset_buffer (); |
| 102 void set_buffer_internal (); | 102 void set_buffer_internal (); |
| 103 void set_buffer_internal_1 (); | |
| 103 static void call_overlay_mod_hooks (); | 104 static void call_overlay_mod_hooks (); |
| 104 static void swap_out_buffer_local_variables (); | 105 static void swap_out_buffer_local_variables (); |
| 105 | 106 |
| 106 /* Alist of all buffer names vs the buffers. */ | 107 /* Alist of all buffer names vs the buffers. */ |
| 107 /* This used to be a variable, but is no longer, | 108 /* This used to be a variable, but is no longer, |
| 1179 register Lisp_Object buf; | 1180 register Lisp_Object buf; |
| 1180 XSETBUFFER (buf, current_buffer); | 1181 XSETBUFFER (buf, current_buffer); |
| 1181 return buf; | 1182 return buf; |
| 1182 } | 1183 } |
| 1183 | 1184 |
| 1184 /* Set the current buffer to b */ | 1185 /* Set the current buffer to B. */ |
| 1185 | 1186 |
| 1186 void | 1187 void |
| 1187 set_buffer_internal (b) | 1188 set_buffer_internal (b) |
| 1188 register struct buffer *b; | 1189 register struct buffer *b; |
| 1189 { | 1190 { |
| 1193 | 1194 |
| 1194 if (current_buffer == b) | 1195 if (current_buffer == b) |
| 1195 return; | 1196 return; |
| 1196 | 1197 |
| 1197 windows_or_buffers_changed = 1; | 1198 windows_or_buffers_changed = 1; |
| 1199 set_buffer_internal_1 (b); | |
| 1200 } | |
| 1201 | |
| 1202 /* Set the current buffer to B, and do not set windows_or_buffers_changed. | |
| 1203 This is used by redisplay. */ | |
| 1204 | |
| 1205 void | |
| 1206 set_buffer_internal_1 (b) | |
| 1207 register struct buffer *b; | |
| 1208 { | |
| 1209 register struct buffer *old_buf; | |
| 1210 register Lisp_Object tail, valcontents; | |
| 1211 Lisp_Object tem; | |
| 1212 | |
| 1213 if (current_buffer == b) | |
| 1214 return; | |
| 1215 | |
| 1198 old_buf = current_buffer; | 1216 old_buf = current_buffer; |
| 1199 current_buffer = b; | 1217 current_buffer = b; |
| 1200 last_known_column_point = -1; /* invalidate indentation cache */ | 1218 last_known_column_point = -1; /* invalidate indentation cache */ |
| 1201 | 1219 |
| 1202 if (old_buf) | 1220 if (old_buf) |
| 2427 redisplay_region (ob, XINT (o_beg), XINT (o_end)); | 2445 redisplay_region (ob, XINT (o_beg), XINT (o_end)); |
| 2428 } | 2446 } |
| 2429 | 2447 |
| 2430 /* Redisplay where the overlay is going to be. */ | 2448 /* Redisplay where the overlay is going to be. */ |
| 2431 redisplay_region (b, XINT (beg), XINT (end)); | 2449 redisplay_region (b, XINT (beg), XINT (end)); |
| 2432 | |
| 2433 /* Don't limit redisplay to the selected window. */ | |
| 2434 windows_or_buffers_changed = 1; | |
| 2435 } | 2450 } |
| 2436 else | 2451 else |
| 2437 /* Redisplay the area the overlay has just left, or just enclosed. */ | 2452 /* Redisplay the area the overlay has just left, or just enclosed. */ |
| 2438 { | 2453 { |
| 2439 Lisp_Object o_beg; | 2454 Lisp_Object o_beg; |
