From 7ea69158f0a00e84d31738ab6e9ea414c66b1410 Mon Sep 17 00:00:00 2001 From: "Richard M. Stallman" Date: Tue, 14 Sep 1993 12:10:53 +0000 Subject: (graft_intervals_into_buffer): New arg INHERIT. --- src/intervals.c | 35 +++++++++++++++++------------------ 1 file changed, 17 insertions(+), 18 deletions(-) diff --git a/src/intervals.c b/src/intervals.c index 75525594929..a6be24f1860 100644 --- a/src/intervals.c +++ b/src/intervals.c @@ -1248,10 +1248,11 @@ make_new_interval (intervals, start, length) 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 @@ graft_intervals_into_buffer (source, position, buffer) 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 @@ graft_intervals_into_buffer (source, position, buffer) else this = under; copy_properties (over, this); - if (MERGE_INSERTIONS (this)) + if (inherit) merge_properties (over, this); else copy_properties (over, this); -- cgit v1.2.3-70-g09d2