summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKenichi Handa <handa@m17n.org>1998-02-20 01:40:47 +0000
committerKenichi Handa <handa@m17n.org>1998-02-20 01:40:47 +0000
commit2d9eea4477dda68e9fa018ddfa0dca19920d1fc2 (patch)
treec527be5e2685ba9ea2db72bd3c1a20398825b7f5
parent2189766e34598fedf6d84b53bc78568b42c58306 (diff)
downloademacs-2d9eea4477dda68e9fa018ddfa0dca19920d1fc2.tar.gz
emacs-2d9eea4477dda68e9fa018ddfa0dca19920d1fc2.tar.bz2
emacs-2d9eea4477dda68e9fa018ddfa0dca19920d1fc2.zip
(adjust_before_replace): Comment added.
(adjust_after_replace): Comment added. Give correct args to adjust_point. Don't call signal_after_change here.
-rw-r--r--src/insdel.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/insdel.c b/src/insdel.c
index 98d55e57d1f..461cf6da40d 100644
--- a/src/insdel.c
+++ b/src/insdel.c
@@ -1076,6 +1076,12 @@ insert_from_buffer_1 (buf, from, nchars, inherit)
current_buffer, inherit);
}
+/* This function should be called after moving gap to FROM and before
+ altering LEN chars of text starting from FROM. This adjusts
+ various position keepers and markers and as if the text is deleted.
+ Don't forget to call adjust_after_replace after you actually alter
+ the text. */
+
void
adjust_before_replace (from, from_byte, to, to_byte)
int from, from_byte, to, to_byte;
@@ -1084,13 +1090,16 @@ adjust_before_replace (from, from_byte, to, to_byte)
record_delete (from, to - from);
}
+/* This function should be called after altering the text between FROM
+ and TO to a new text of LEN chars (LEN_BYTE bytes). */
+
void
adjust_after_replace (from, from_byte, to, to_byte, len, len_byte)
int from, from_byte, to, to_byte, len, len_byte;
{
record_insert (from, len);
if (from < PT)
- adjust_point (len, len_byte);
+ adjust_point (len - (to - from), len_byte - (to_byte - from_byte));
#ifdef USE_TEXT_PROPERTIES
offset_intervals (current_buffer, PT, len - (to - from));
#endif
@@ -1101,7 +1110,6 @@ adjust_after_replace (from, from_byte, to, to_byte, len, len_byte)
if (len == 0)
evaporate_overlays (from);
MODIFF++;
- signal_after_change (from, to - from, len);
}
/* Replace the text from character positions FROM to TO with NEW,