diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/ChangeLog | 6 | ||||
| -rw-r--r-- | src/insdel.c | 27 |
2 files changed, 16 insertions, 17 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index c76838a2811..0b043a00112 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,5 +1,11 @@ | |||
| 1 | 2013-08-02 Dmitry Antipov <dmantipov@yandex.ru> | 1 | 2013-08-02 Dmitry Antipov <dmantipov@yandex.ru> |
| 2 | 2 | ||
| 3 | * insdel.c (adjust_after_replace, replace_range, del_range_2): | ||
| 4 | Do not check whether undo is enabled because record_insert and | ||
| 5 | record_delete does that themselves. | ||
| 6 | |||
| 7 | 2013-08-02 Dmitry Antipov <dmantipov@yandex.ru> | ||
| 8 | |||
| 3 | * xterm.h (struct x_output) [HAVE_X_I18N]: Remove xic_base_fontname | 9 | * xterm.h (struct x_output) [HAVE_X_I18N]: Remove xic_base_fontname |
| 4 | member which is not really used any more. | 10 | member which is not really used any more. |
| 5 | (FRAME_XIC_BASE_FONTNAME): Remove. | 11 | (FRAME_XIC_BASE_FONTNAME): Remove. |
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 | ||