aboutsummaryrefslogtreecommitdiffstats
path: root/src/textprop.c
diff options
context:
space:
mode:
authorKaroly Lorentey2006-04-28 14:48:18 +0000
committerKaroly Lorentey2006-04-28 14:48:18 +0000
commitb33c71f58623306001d4d4fe4f7354d8c360edaa (patch)
tree3bcc8154133fcb19081850754bb725f38f86b56f /src/textprop.c
parent717a00ef34c0f55bfbad80584f00d86c090d547f (diff)
parenta48b489eb94a238c1eca6a0c4bdf7d5b80503240 (diff)
downloademacs-b33c71f58623306001d4d4fe4f7354d8c360edaa.tar.gz
emacs-b33c71f58623306001d4d4fe4f7354d8c360edaa.zip
Merged from emacs@sv.gnu.org
Patches applied: * emacs@sv.gnu.org/emacs--devo--0--patch-234 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-235 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-236 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-237 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-238 Merge from gnus--rel--5.10 * emacs@sv.gnu.org/emacs--devo--0--patch-239 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-240 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-241 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-242 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-243 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-244 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-245 (Ffield_beginning, find_field): Undo change of 2006-04-23. * emacs@sv.gnu.org/emacs--devo--0--patch-246 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-247 Rcirc patch from Ryan Yeske * emacs@sv.gnu.org/emacs--devo--0--patch-248 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-249 Merge from gnus--rel--5.10 * emacs@sv.gnu.org/emacs--devo--0--patch-250 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-251 Update from CVS * emacs@sv.gnu.org/gnus--rel--5.10--patch-87 Merge from emacs--devo--0 * emacs@sv.gnu.org/gnus--rel--5.10--patch-88 Update from CVS * emacs@sv.gnu.org/gnus--rel--5.10--patch-89 Update from CVS * emacs@sv.gnu.org/gnus--rel--5.10--patch-90 Update from CVS * emacs@sv.gnu.org/gnus--rel--5.10--patch-91 Merge from emacs--devo--0 * emacs@sv.gnu.org/gnus--rel--5.10--patch-92 Update from CVS * emacs@sv.gnu.org/gnus--rel--5.10--patch-93 Update from CVS * emacs@sv.gnu.org/gnus--rel--5.10--patch-94 Update from CVS * emacs@sv.gnu.org/gnus--rel--5.10--patch-95 Update from CVS git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-553
Diffstat (limited to 'src/textprop.c')
-rw-r--r--src/textprop.c32
1 files changed, 26 insertions, 6 deletions
diff --git a/src/textprop.c b/src/textprop.c
index 65823d9fa3f..e2f9c531735 100644
--- a/src/textprop.c
+++ b/src/textprop.c
@@ -1602,10 +1602,12 @@ Return t if any property was actually removed, nil otherwise. */)
1602 } 1602 }
1603 } 1603 }
1604 1604
1605 if (BUFFERP (object)) 1605 /* We are at the beginning of an interval, with len to scan.
1606 modify_region (XBUFFER (object), XINT (start), XINT (end)); 1606 The flag `modified' records if changes have been made.
1607 1607 When object is a buffer, we must call modify_region before changes are
1608 /* We are at the beginning of an interval, with len to scan */ 1608 made and signal_after_change when we are done.
1609 We call modify_region before calling remove_properties iff modified == 0,
1610 and we call signal_after_change before returning iff modified != 0. */
1609 for (;;) 1611 for (;;)
1610 { 1612 {
1611 if (i == 0) 1613 if (i == 0)
@@ -1614,10 +1616,20 @@ Return t if any property was actually removed, nil otherwise. */)
1614 if (LENGTH (i) >= len) 1616 if (LENGTH (i) >= len)
1615 { 1617 {
1616 if (! interval_has_some_properties_list (properties, i)) 1618 if (! interval_has_some_properties_list (properties, i))
1617 return modified ? Qt : Qnil; 1619 if (modified)
1620 {
1621 if (BUFFERP (object))
1622 signal_after_change (XINT (start), XINT (end) - XINT (start),
1623 XINT (end) - XINT (start));
1624 return Qt;
1625 }
1626 else
1627 return Qnil;
1618 1628
1619 if (LENGTH (i) == len) 1629 if (LENGTH (i) == len)
1620 { 1630 {
1631 if (!modified && BUFFERP (object))
1632 modify_region (XBUFFER (object), XINT (start), XINT (end));
1621 remove_properties (Qnil, properties, i, object); 1633 remove_properties (Qnil, properties, i, object);
1622 if (BUFFERP (object)) 1634 if (BUFFERP (object))
1623 signal_after_change (XINT (start), XINT (end) - XINT (start), 1635 signal_after_change (XINT (start), XINT (end) - XINT (start),
@@ -1629,6 +1641,8 @@ Return t if any property was actually removed, nil otherwise. */)
1629 unchanged = i; 1641 unchanged = i;
1630 i = split_interval_left (i, len); 1642 i = split_interval_left (i, len);
1631 copy_properties (unchanged, i); 1643 copy_properties (unchanged, i);
1644 if (!modified && BUFFERP (object))
1645 modify_region (XBUFFER (object), XINT (start), XINT (end));
1632 remove_properties (Qnil, properties, i, object); 1646 remove_properties (Qnil, properties, i, object);
1633 if (BUFFERP (object)) 1647 if (BUFFERP (object))
1634 signal_after_change (XINT (start), XINT (end) - XINT (start), 1648 signal_after_change (XINT (start), XINT (end) - XINT (start),
@@ -1636,8 +1650,14 @@ Return t if any property was actually removed, nil otherwise. */)
1636 return Qt; 1650 return Qt;
1637 } 1651 }
1638 1652
1653 if (interval_has_some_properties_list (properties, i))
1654 {
1655 if (!modified && BUFFERP (object))
1656 modify_region (XBUFFER (object), XINT (start), XINT (end));
1657 remove_properties (Qnil, properties, i, object);
1658 modified = 1;
1659 }
1639 len -= LENGTH (i); 1660 len -= LENGTH (i);
1640 modified += remove_properties (Qnil, properties, i, object);
1641 i = next_interval (i); 1661 i = next_interval (i);
1642 } 1662 }
1643} 1663}