1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-02-04 14:40:54 -08:00

Merge from trunk

This commit is contained in:
Jan Djärv 2010-01-19 15:54:57 +01:00
commit bc4b76f12a
2 changed files with 16 additions and 7 deletions

View file

@ -182,6 +182,13 @@
* dispnew.c (change_frame_size_1): newwidth == FRAME_COLS (f) must
also be true before we can return early (bug #5339).
2010-01-08 Alan Mackenzie <acm@muc.de>
Fix spurious before-change-functions invocation from (insert ?\n).
* textprop.c (set_text_properties): rename parameter
`signal_after_change_p' to `coherent_change_p', and make the
invocation of `modify_region' conditional on it.
2010-01-06 David Reitter <david.reitter@gmail.com>
* nsfns.m (ns_get_screen): Rewrite, returning NULL for non-NS.

View file

@ -1346,13 +1346,15 @@ the designated part of OBJECT. */)
/* 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 nil if the function _detected_ that it did not replace any
properties, non-nil otherwise. */
COHERENT_CHANGE_P nil means this is being called as an internal
subroutine, rather than as a change primitive with checking of
read-only, invoking change hooks, etc.. Value is nil if the
function _detected_ that it did not replace any properties, non-nil
otherwise. */
Lisp_Object
set_text_properties (start, end, properties, object, signal_after_change_p)
Lisp_Object start, end, properties, object, signal_after_change_p;
set_text_properties (start, end, properties, object, coherent_change_p)
Lisp_Object start, end, properties, object, coherent_change_p;
{
register INTERVAL i;
Lisp_Object ostart, oend;
@ -1397,12 +1399,12 @@ set_text_properties (start, end, properties, object, signal_after_change_p)
return Qnil;
}
if (BUFFERP (object))
if (BUFFERP (object) && !NILP (coherent_change_p))
modify_region (XBUFFER (object), XINT (start), XINT (end), 1);
set_text_properties_1 (start, end, properties, object, i);
if (BUFFERP (object) && !NILP (signal_after_change_p))
if (BUFFERP (object) && !NILP (coherent_change_p))
signal_after_change (XINT (start), XINT (end) - XINT (start),
XINT (end) - XINT (start));
return Qt;