aboutsummaryrefslogtreecommitdiffstats
path: root/src/insdel.c
diff options
context:
space:
mode:
authorDmitry Antipov2013-08-02 11:07:08 +0400
committerDmitry Antipov2013-08-02 11:07:08 +0400
commitaf1f7e0682d9182be94de6d4ba30e76e1f4a75be (patch)
tree934137fcca01f9faa78636a65654ce0bb2ed5c82 /src/insdel.c
parente5bbaf419fd4109c1b9585ef693c9a07961eea59 (diff)
downloademacs-af1f7e0682d9182be94de6d4ba30e76e1f4a75be.tar.gz
emacs-af1f7e0682d9182be94de6d4ba30e76e1f4a75be.zip
* insdel.c (adjust_after_replace, replace_range, del_range_2):
Do not check whether undo is enabled because record_insert and record_delete does that themselves.
Diffstat (limited to 'src/insdel.c')
-rw-r--r--src/insdel.c27
1 files changed, 10 insertions, 17 deletions
diff --git a/src/insdel.c b/src/insdel.c
index 15d585568a0..6b0aa9db3e3 100644
--- a/src/insdel.c
+++ b/src/insdel.c
@@ -1211,12 +1211,9 @@ adjust_after_replace (ptrdiff_t from, ptrdiff_t from_byte,
1211 adjust_markers_for_insert (from, from_byte, 1211 adjust_markers_for_insert (from, from_byte,
1212 from + len, from_byte + len_byte, 0); 1212 from + len, from_byte + len_byte, 0);
1213 1213
1214 if (! EQ (BVAR (current_buffer, undo_list), Qt)) 1214 if (nchars_del > 0)
1215 { 1215 record_delete (from, prev_text);
1216 if (nchars_del > 0) 1216 record_insert (from, len);
1217 record_delete (from, prev_text);
1218 record_insert (from, len);
1219 }
1220 1217
1221 if (len > nchars_del) 1218 if (len > nchars_del)
1222 adjust_overlays_for_insert (from, len - nchars_del); 1219 adjust_overlays_for_insert (from, len - nchars_del);
@@ -1373,15 +1370,12 @@ replace_range (ptrdiff_t from, ptrdiff_t to, Lisp_Object new,
1373 emacs_abort (); 1370 emacs_abort ();
1374#endif 1371#endif
1375 1372
1376 if (! EQ (BVAR (current_buffer, undo_list), Qt)) 1373 /* Record the insertion first, so that when we undo,
1377 { 1374 the deletion will be undone first. Thus, undo
1378 /* Record the insertion first, so that when we undo, 1375 will insert before deleting, and thus will keep
1379 the deletion will be undone first. Thus, undo 1376 the markers before and after this text separate. */
1380 will insert before deleting, and thus will keep 1377 record_insert (from + SCHARS (deletion), inschars);
1381 the markers before and after this text separate. */ 1378 record_delete (from, deletion);
1382 record_insert (from + SCHARS (deletion), inschars);
1383 record_delete (from, deletion);
1384 }
1385 1379
1386 GAP_SIZE -= outgoing_insbytes; 1380 GAP_SIZE -= outgoing_insbytes;
1387 GPT += inschars; 1381 GPT += inschars;
@@ -1718,8 +1712,7 @@ del_range_2 (ptrdiff_t from, ptrdiff_t from_byte,
1718 so that undo handles this after reinserting the text. */ 1712 so that undo handles this after reinserting the text. */
1719 adjust_markers_for_delete (from, from_byte, to, to_byte); 1713 adjust_markers_for_delete (from, from_byte, to, to_byte);
1720 1714
1721 if (! EQ (BVAR (current_buffer, undo_list), Qt)) 1715 record_delete (from, deletion);
1722 record_delete (from, deletion);
1723 MODIFF++; 1716 MODIFF++;
1724 CHARS_MODIFF = MODIFF; 1717 CHARS_MODIFF = MODIFF;
1725 1718