summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorKarl Heuer <kwzh@gnu.org>1995-05-24 00:43:27 +0000
committerKarl Heuer <kwzh@gnu.org>1995-05-24 00:43:27 +0000
commitc7aa5005849af7f5887b489ad899f6fa1152c6d2 (patch)
treebb4e4a46098626b90392ef80d291c8164bd147be /src
parentf72df6ac010c0c725d76e8592f135edf6ad8fedd (diff)
downloademacs-c7aa5005849af7f5887b489ad899f6fa1152c6d2.tar.gz
(set_buffer_internal_1): New subroutine.
(Fmove_overlay): Don't set windows_or_buffers_changed.
Diffstat (limited to 'src')
-rw-r--r--src/buffer.c23
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;
Lisp_Object Fset_buffer ();
void set_buffer_internal ();
+void set_buffer_internal_1 ();
static void call_overlay_mod_hooks ();
static void swap_out_buffer_local_variables ();
@@ -1181,7 +1182,7 @@ DEFUN ("current-buffer", Fcurrent_buffer, Scurrent_buffer, 0, 0, 0,
return buf;
}
-/* Set the current buffer to b */
+/* Set the current buffer to B. */
void
set_buffer_internal (b)
@@ -1195,6 +1196,23 @@ set_buffer_internal (b)
return;
windows_or_buffers_changed = 1;
+ set_buffer_internal_1 (b);
+}
+
+/* Set the current buffer to B, and do not set windows_or_buffers_changed.
+ This is used by redisplay. */
+
+void
+set_buffer_internal_1 (b)
+ register struct buffer *b;
+{
+ register struct buffer *old_buf;
+ register Lisp_Object tail, valcontents;
+ Lisp_Object tem;
+
+ if (current_buffer == b)
+ return;
+
old_buf = current_buffer;
current_buffer = b;
last_known_column_point = -1; /* invalidate indentation cache */
@@ -2429,9 +2447,6 @@ buffer.")
/* Redisplay where the overlay is going to be. */
redisplay_region (b, XINT (beg), XINT (end));
-
- /* Don't limit redisplay to the selected window. */
- windows_or_buffers_changed = 1;
}
else
/* Redisplay the area the overlay has just left, or just enclosed. */