# HG changeset patch # User Gerd Moellmann # Date 943618051 0 # Node ID 46168cb41ba07483e0bae239a1c7ae4eca35f1ff # Parent 381c4e70f9fbe5bc94d37f6cbebbc1b2da8dc242 (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. diff -r 381c4e70f9fb -r 46168cb41ba0 src/textprop.c --- 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;