summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlan Mackenzie <acm@muc.de>2010-01-08 13:41:42 +0000
committerAlan Mackenzie <acm@muc.de>2010-01-08 13:41:42 +0000
commit9c34521302b71eee8415a3e341870e2297b8381a (patch)
treeeede463e3a78372c82945f94142290fa90d80e3c
parent9bbe0828a0871985dfc8e1ba82020280efdaeb36 (diff)
downloademacs-9c34521302b71eee8415a3e341870e2297b8381a.tar.gz
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. ------------- This line and the following will be ignored -------------- modified: src/ChangeLog src/textprop.c unknown: Makefile config.log config.status doc/emacs/Makefile doc/lispintro/Makefile doc/lispref/Makefile doc/misc/Makefile etc/DOC-23.1.91.1 leim/Makefile leim/changed.misc leim/changed.tit lib-src/Makefile lib-src/Makefile.c lib-src/b2m lib-src/ctags lib-src/digest-doc lib-src/ebrowse lib-src/emacsclient lib-src/etags lib-src/fakemail lib-src/hexl lib-src/make-docfile lib-src/movemail lib-src/profile lib-src/sorted-doc lib-src/test-distrib lib-src/update-game-score lisp/Makefile lwlib/Makefile oldXMenu/Makefile src/Makefile src/Makefile.c src/bootstrap-emacs src/deps/ src/emacs src/emacs-23.1.91.1 src/prefix-args src/stamp-oldxmenu src/temacs
-rw-r--r--src/ChangeLog7
-rw-r--r--src/textprop.c16
2 files changed, 16 insertions, 7 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 73000341f68..2da31448bed 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,10 @@
+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-01 Chong Yidong <cyd@stupidchicken.com>
* lread.c (syms_of_lread): Make it clearer that these are the
diff --git a/src/textprop.c b/src/textprop.c
index 3df5cc9204d..f7952e30d2f 100644
--- a/src/textprop.c
+++ b/src/textprop.c
@@ -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;