changeset 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 23ec1c193810
children 543a76aa50b9
files src/buffer.c
diffstat 1 files changed, 19 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/src/buffer.c	Wed May 24 00:42:21 1995 +0000
+++ b/src/buffer.c	Wed May 24 00:43:27 1995 +0000
@@ -100,6 +100,7 @@
 
 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 @@
   return buf;
 }
 
-/* Set the current buffer to b */
+/* Set the current buffer to B.  */
 
 void
 set_buffer_internal (b)
@@ -1195,6 +1196,23 @@
     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 @@
 
       /* 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.  */