diff options
author | Dmitry Antipov <dmantipov@yandex.ru> | 2012-12-20 12:49:21 +0400 |
---|---|---|
committer | Dmitry Antipov <dmantipov@yandex.ru> | 2012-12-20 12:49:21 +0400 |
commit | 1687fb14cd625aedce869411c841ff3fbf9ca43d (patch) | |
tree | 87e830b3cd829676605146a6d2a3d1f23eefc924 | |
parent | 87523aedc8a36a3be17e2918b0c8bd43cbe3618c (diff) | |
download | emacs-1687fb14cd625aedce869411c841ff3fbf9ca43d.tar.gz |
* textprop.c (set_text_properties_1): Do not allow NULL interval.
Rename 4th argument since it may be buffer or string. Adjust comment.
* intervals.c (graft_intervals_info_buffer): Find an interval here.
-rw-r--r-- | src/ChangeLog | 6 | ||||
-rw-r--r-- | src/intervals.c | 3 | ||||
-rw-r--r-- | src/textprop.c | 18 |
3 files changed, 16 insertions, 11 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index c324425a401..e31e35c7b49 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,9 @@ +2012-12-20 Dmitry Antipov <dmantipov@yandex.ru> + + * textprop.c (set_text_properties_1): Do not allow NULL interval. + Rename 4th argument since it may be buffer or string. Adjust comment. + * intervals.c (graft_intervals_info_buffer): Find an interval here. + 2012-12-19 Dmitry Antipov <dmantipov@yandex.ru> * coding.c (Fdetect_coding_region): Do not check start and end with diff --git a/src/intervals.c b/src/intervals.c index 1ed93e1302d..807bbbfaa33 100644 --- a/src/intervals.c +++ b/src/intervals.c @@ -1624,7 +1624,8 @@ graft_intervals_into_buffer (INTERVAL source, ptrdiff_t position, XSETBUFFER (buf, buffer); set_text_properties_1 (make_number (position), make_number (position + length), - Qnil, buf, 0); + Qnil, buf, + find_interval (tree, position)); } /* Shouldn't be necessary. --Stef */ buffer_balance_intervals (buffer); diff --git a/src/textprop.c b/src/textprop.c index 1ce44ad60ac..13d772f15ba 100644 --- a/src/textprop.c +++ b/src/textprop.c @@ -1323,14 +1323,13 @@ set_text_properties (Lisp_Object start, Lisp_Object end, Lisp_Object properties, } /* Replace properties of text from START to END with new list of - properties PROPERTIES. BUFFER is the buffer containing + properties PROPERTIES. OBJECT is the buffer or string containing the text. This does not obey any hooks. - You can provide the interval that START is located in as I, - or pass NULL for I and this function will find it. + You should provide the interval that START is located in as I. START and END can be in any order. */ void -set_text_properties_1 (Lisp_Object start, Lisp_Object end, Lisp_Object properties, Lisp_Object buffer, INTERVAL i) +set_text_properties_1 (Lisp_Object start, Lisp_Object end, Lisp_Object properties, Lisp_Object object, INTERVAL i) { register INTERVAL prev_changed = NULL; register ptrdiff_t s, len; @@ -1349,8 +1348,7 @@ set_text_properties_1 (Lisp_Object start, Lisp_Object end, Lisp_Object propertie else return; - if (i == NULL) - i = find_interval (buffer_intervals (XBUFFER (buffer)), s); + eassert (i); if (i->position != s) { @@ -1361,11 +1359,11 @@ set_text_properties_1 (Lisp_Object start, Lisp_Object end, Lisp_Object propertie { copy_properties (unchanged, i); i = split_interval_left (i, len); - set_properties (properties, i, buffer); + set_properties (properties, i, object); return; } - set_properties (properties, i, buffer); + set_properties (properties, i, object); if (LENGTH (i) == len) return; @@ -1388,7 +1386,7 @@ set_text_properties_1 (Lisp_Object start, Lisp_Object end, Lisp_Object propertie /* We have to call set_properties even if we are going to merge the intervals, so as to make the undo records and cause redisplay to happen. */ - set_properties (properties, i, buffer); + set_properties (properties, i, object); if (prev_changed) merge_interval_left (i); return; @@ -1399,7 +1397,7 @@ set_text_properties_1 (Lisp_Object start, Lisp_Object end, Lisp_Object propertie /* We have to call set_properties even if we are going to merge the intervals, so as to make the undo records and cause redisplay to happen. */ - set_properties (properties, i, buffer); + set_properties (properties, i, object); if (!prev_changed) prev_changed = i; else |