diff options
| author | Karl Heuer | 1995-05-24 00:43:27 +0000 |
|---|---|---|
| committer | Karl Heuer | 1995-05-24 00:43:27 +0000 |
| commit | c7aa5005849af7f5887b489ad899f6fa1152c6d2 (patch) | |
| tree | bb4e4a46098626b90392ef80d291c8164bd147be /src/buffer.c | |
| parent | f72df6ac010c0c725d76e8592f135edf6ad8fedd (diff) | |
| download | emacs-c7aa5005849af7f5887b489ad899f6fa1152c6d2.tar.gz emacs-c7aa5005849af7f5887b489ad899f6fa1152c6d2.zip | |
(set_buffer_internal_1): New subroutine.
(Fmove_overlay): Don't set windows_or_buffers_changed.
Diffstat (limited to 'src/buffer.c')
| -rw-r--r-- | src/buffer.c | 23 |
1 files changed, 19 insertions, 4 deletions
diff --git a/src/buffer.c b/src/buffer.c index bad812ba9e5..e743425052f 100644 --- a/src/buffer.c +++ b/src/buffer.c | |||
| @@ -100,6 +100,7 @@ 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 | ||
| @@ -1181,7 +1182,7 @@ DEFUN ("current-buffer", Fcurrent_buffer, Scurrent_buffer, 0, 0, 0, | |||
| 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) |
| @@ -1195,6 +1196,23 @@ set_buffer_internal (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 */ |
| @@ -2429,9 +2447,6 @@ buffer.") | |||
| 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. */ |