aboutsummaryrefslogtreecommitdiffstats
path: root/src/ChangeLog
diff options
context:
space:
mode:
authorBarry O'Reilly2014-03-24 22:47:39 -0400
committerBarry O'Reilly2014-03-24 22:47:39 -0400
commit37ea8275f7faad1192ddaba9f4a0789580675e17 (patch)
treecb6242b0298180f32d8c253c1b3aa8af3c6572fa /src/ChangeLog
parent3e2377ce2f4eeb141ffbd000723c55813f78b08f (diff)
downloademacs-37ea8275f7faad1192ddaba9f4a0789580675e17.tar.gz
emacs-37ea8275f7faad1192ddaba9f4a0789580675e17.zip
Undo in region after markers in undo history relocated
* simple.el (primitive-undo): Only process marker adjustments validated against their corresponding (TEXT . POS). Issue warning for lone marker adjustments in undo history. (Bug#16818) (undo-make-selective-list): Add marker adjustments to selective undo list based on whether their corresponding (TEXT . POS) is in the region. Remove variable adjusted-markers, which was unused and only non nil during undo-make-selective-list. (undo-elt-in-region): Return nil when passed a marker adjustment and explain in function doc. Have (MARKER . ADJUSTMENT) undo records always be immediately after their corresponding (TEXT . POS) record in undo list. (Bug#16818) * lisp.h (record-delete): New arg record_markers. (record_marker_adjustment): No longer needed outside undo.c. * insdel.c (adjust_markers_for_delete): Move calculation of marker adjustments to undo.c's record_marker_adjustments. Note that fileio.c's decide_coding_unwind is another caller to adjust_markers_for_delete. Because it has undo list bound to t, it does not rely on adjust_markers_for_delete to record marker adjustments. (del_range_2): Swap call to record_delete and adjust_markers_for_delete so as undo marker adjustments are recorded before current deletion's adjustments, as before. (adjust_after_replace): (replace_range): Pass value for new record_markers arg to delete_record. * undo.c (record_marker_adjustment): Renamed to record_marker_adjustments and made static. (record_delete): Check record_markers arg and call record_marker_adjustments. (record_change): Pass value for new record_markers arg to delete_record. (record_point): at_boundary calculation no longer needs to account for marker adjustments. * undo-tests.el (undo-test-marker-adjustment-nominal): (undo-test-region-t-marker): New tests of marker adjustments. (undo-test-marker-adjustment-moved): (undo-test-region-mark-adjustment): New tests to demonstrate bug#16818, which fail without the fix. * markers.texi (Moving Marker Positions): The 2014-03-02 doc change mentioning undo's inability to handle relocated markers no longer applies. See bug#16818. * text.texi (Undo): Expand documentation of (TEXT . POS) and (MARKER . ADJUSTMENT) undo elements.
Diffstat (limited to 'src/ChangeLog')
-rw-r--r--src/ChangeLog28
1 files changed, 28 insertions, 0 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index da82eca9df2..cbe10d89690 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,31 @@
12014-03-24 Barry O'Reilly <gundaetiapo@gmail.com>
2
3 Have (MARKER . ADJUSTMENT) undo records always be immediately
4 after their corresponding (TEXT . POS) record in undo list.
5 (Bug#16818)
6 * lisp.h (record-delete): New arg record_markers.
7 (record_marker_adjustment): No longer needed outside undo.c.
8 * insdel.c (adjust_markers_for_delete): Move calculation of marker
9 adjustments to undo.c's record_marker_adjustments. Note that
10 fileio.c's decide_coding_unwind is another caller to
11 adjust_markers_for_delete. Because it has undo list bound to t,
12 it does not rely on adjust_markers_for_delete to record marker
13 adjustments.
14 (del_range_2): Swap call to record_delete and
15 adjust_markers_for_delete so as undo marker adjustments are
16 recorded before current deletion's adjustments, as before.
17 (adjust_after_replace):
18 (replace_range): Pass value for new record_markers arg to
19 delete_record.
20 * undo.c (record_marker_adjustment): Renamed to
21 record_marker_adjustments and made static.
22 (record_delete): Check record_markers arg and call
23 record_marker_adjustments.
24 (record_change): Pass value for new record_markers arg to
25 delete_record.
26 (record_point): at_boundary calculation no longer needs to account
27 for marker adjustments.
28
12014-03-24 Martin Rudalics <rudalics@gmx.at> 292014-03-24 Martin Rudalics <rudalics@gmx.at>
2 30
3 * w32term.c (x_set_window_size): Refine fix from 2014-03-14 31 * w32term.c (x_set_window_size): Refine fix from 2014-03-14