# HG changeset patch # User Richard M. Stallman # Date 754208883 0 # Node ID d040c1a8ccbeb785e6af6f1bcb6ff865c7a7fbda # Parent b30763a185e9d8aef2d3653cd1ad95b98f02b757 (graft_intervals_into_buffer): New arg LENGTH. If source has no intervals, set dest properties to nil. diff -r b30763a185e9 -r d040c1a8ccbe src/intervals.c --- a/src/intervals.c Thu Nov 25 06:26:39 1993 +0000 +++ b/src/intervals.c Thu Nov 25 06:28:03 1993 +0000 @@ -1221,6 +1221,7 @@ #endif /* Insert the intervals of SOURCE into BUFFER at POSITION. + LENGTH is the length of the text in SOURCE. This is used in insdel.c when inserting Lisp_Strings into the buffer. The text corresponding to SOURCE is already in the buffer @@ -1228,7 +1229,8 @@ belonging to the string being inserted; intervals are never shared. - If the inserted text had no intervals associated, this function + If the inserted text had no intervals associated, and we don't + want to inherit the surrounding text's properties, this function simply returns -- offset_intervals should handle placing the text in the correct interval, depending on the sticky bits. @@ -1253,9 +1255,9 @@ text... */ void -graft_intervals_into_buffer (source, position, buffer, inherit) +graft_intervals_into_buffer (source, position, length, buffer, inherit) INTERVAL source; - int position; + int position, length; struct buffer *buffer; int inherit; { @@ -1266,7 +1268,17 @@ /* If the new text has no properties, it becomes part of whatever interval it was inserted into. */ if (NULL_INTERVAL_P (source)) - return; + { + Lisp_Object buf; + if (!inherit) + { + XSET (buf, Lisp_Buffer, buffer); + Fset_text_properties (make_number (position), + make_number (position + length), + Qnil, buf); + } + return; + } if (NULL_INTERVAL_P (tree)) {