changeset 4718:a05b833e61c4

(graft_intervals_into_buffer): New arg INHERIT.
author Richard M. Stallman <rms@gnu.org>
date Tue, 14 Sep 1993 12:10:53 +0000
parents 5297e155e1d2
children f250e1299a74
files src/intervals.c
diffstat 1 files changed, 17 insertions(+), 18 deletions(-) [+]
line wrap: on
line diff
--- a/src/intervals.c	Tue Sep 14 12:10:27 1993 +0000
+++ b/src/intervals.c	Tue Sep 14 12:10:53 1993 +0000
@@ -1248,10 +1248,11 @@
    text...  */
 
 void
-graft_intervals_into_buffer (source, position, buffer)
+graft_intervals_into_buffer (source, position, buffer, inherit)
      INTERVAL source;
      int position;
      struct buffer *buffer;
+     int inherit;
 {
   register INTERVAL under, over, this, prev;
   register INTERVAL tree = buffer->intervals;
@@ -1284,23 +1285,21 @@
 	tree = create_root_interval (buf);
       }
     }
-  else
-    if (TOTAL_LENGTH (tree) == TOTAL_LENGTH (source))
-      /* If the buffer contains only the new string, but
-	 there was already some interval tree there, then it may be
-	 some zero length intervals.  Eventually, do something clever
-	 about inserting properly.  For now, just waste the old intervals.  */
-      {
-	buffer->intervals = reproduce_tree (source, tree->parent);
-	/* Explicitly free the old tree here.  */
+  else if (TOTAL_LENGTH (tree) == TOTAL_LENGTH (source))
+    /* If the buffer contains only the new string, but
+       there was already some interval tree there, then it may be
+       some zero length intervals.  Eventually, do something clever
+       about inserting properly.  For now, just waste the old intervals.  */
+    {
+      buffer->intervals = reproduce_tree (source, tree->parent);
+      /* Explicitly free the old tree here.  */
 
-	return;
-      }
-    else
-      /* Paranoia -- the text has already been added, so this buffer
-	 should be of non-zero length.  */
-      if (TOTAL_LENGTH (tree) == 0)
-	abort ();
+      return;
+    }
+  /* Paranoia -- the text has already been added, so this buffer
+     should be of non-zero length.  */
+  else if (TOTAL_LENGTH (tree) == 0)
+    abort ();
 
   this = under = find_interval (tree, position);
   if (NULL_INTERVAL_P (under))	/* Paranoia */
@@ -1345,7 +1344,7 @@
       else
 	this = under;
       copy_properties (over, this);
-      if (MERGE_INSERTIONS (this))
+      if (inherit)
 	merge_properties (over, this);
       else
 	copy_properties (over, this);