]> git.eshelyaron.com Git - emacs.git/commitdiff
(adjust_after_replace): Fix the code to recode undo
authorKenichi Handa <handa@m17n.org>
Fri, 28 Aug 1998 12:33:52 +0000 (12:33 +0000)
committerKenichi Handa <handa@m17n.org>
Fri, 28 Aug 1998 12:33:52 +0000 (12:33 +0000)
information for the case that `before combining' happens.  Remove
text properties which are added to the new text by
offset_intervals.

src/insdel.c

index dc8cd66ee061b334c0af21fb876215e0c590b073..2faa53ee174d57a3fbcd7b9855bf936e2f3e3796 100644 (file)
@@ -1601,7 +1601,7 @@ adjust_after_replace (from, from_byte, prev_text, len, len_byte)
                              len, len_byte,
                              combined_before_bytes, combined_after_bytes);
   if (STRINGP (prev_text))
-    record_delete (from, prev_text);
+    record_delete (from - !!combined_before_bytes, prev_text);
   record_insert (from - !!combined_before_bytes,
                 len - combined_before_bytes + !!combined_before_bytes);
 
@@ -1611,7 +1611,13 @@ adjust_after_replace (from, from_byte, prev_text, len, len_byte)
     adjust_overlays_for_delete (from, nchars_del - len);
 #ifdef USE_TEXT_PROPERTIES
   if (BUF_INTERVALS (current_buffer) != 0)
-    offset_intervals (current_buffer, from, len - nchars_del);
+    {
+      offset_intervals (current_buffer, from, len - nchars_del);
+      if (len - nchars_del > 0)
+       Fset_text_properties (make_number (from),
+                             make_number (from + len - nchars_del),
+                             Qnil, Qnil);
+    }
 #endif
 
   {