Mercurial > emacs
changeset 26605:46168cb41ba0
(set_text_properties): New function. Like
Fset_text_properties, but with additional parameter
SIGNAL_AFTER_CHANGE_P. If that is nil, don't signal after
changes.
(Fset_text_properties): Use it.
author | Gerd Moellmann <gerd@gnu.org> |
---|---|
date | Fri, 26 Nov 1999 12:07:31 +0000 |
parents | 381c4e70f9fb |
children | 12a1dfb72160 |
files | src/textprop.c |
diffstat | 1 files changed, 19 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/src/textprop.c Fri Nov 26 12:07:04 1999 +0000 +++ b/src/textprop.c Fri Nov 26 12:07:31 1999 +0000 @@ -1087,6 +1087,21 @@ (start, end, properties, object) Lisp_Object start, end, properties, object; { + return set_text_properties (start, end, properties, object, Qt); +} + + +/* Replace properties of text from START to END with new list of + properties PROPERTIES. OBJECT is the buffer or string containing + the text. OBJECT nil means use the current buffer. + SIGNAL_AFTER_CHANGE_P nil means don't signal after changes. Value + is non-nil if properties were replaced; it is nil if there weren't + any properties to replace. */ + +Lisp_Object +set_text_properties (start, end, properties, object, signal_after_change_p) + Lisp_Object start, end, properties, object, signal_after_change_p; +{ register INTERVAL i, unchanged; register INTERVAL prev_changed = NULL_INTERVAL; register int s, len; @@ -1148,7 +1163,7 @@ copy_properties (unchanged, i); i = split_interval_left (i, len); set_properties (properties, i, object); - if (BUFFERP (object)) + if (BUFFERP (object) && !NILP (signal_after_change_p)) signal_after_change (XINT (start), XINT (end) - XINT (start), XINT (end) - XINT (start)); @@ -1159,7 +1174,7 @@ if (LENGTH (i) == len) { - if (BUFFERP (object)) + if (BUFFERP (object) && !NILP (signal_after_change_p)) signal_after_change (XINT (start), XINT (end) - XINT (start), XINT (end) - XINT (start)); @@ -1188,7 +1203,7 @@ set_properties (properties, i, object); if (!NULL_INTERVAL_P (prev_changed)) merge_interval_left (i); - if (BUFFERP (object)) + if (BUFFERP (object) && !NILP (signal_after_change_p)) signal_after_change (XINT (start), XINT (end) - XINT (start), XINT (end) - XINT (start)); return Qt; @@ -1208,7 +1223,7 @@ i = next_interval (i); } - if (BUFFERP (object)) + if (BUFFERP (object) && !NILP (signal_after_change_p)) signal_after_change (XINT (start), XINT (end) - XINT (start), XINT (end) - XINT (start)); return Qt;