Files
emacs/src
Barry O'Reilly 37ea8275f7 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.
2014-03-24 22:47:39 -04:00
..
2014-01-29 20:17:20 +02:00
2013-02-24 21:55:37 -08:00
2014-01-31 11:41:54 +02:00
2014-01-16 20:54:23 -05:00
2014-01-16 20:54:23 -05:00
2014-01-26 01:47:40 +01:00
2014-01-14 22:06:07 -05:00
2014-01-14 22:06:07 -05:00
2014-01-16 20:54:23 -05:00
2014-01-14 22:06:07 -05:00
2014-01-26 01:47:40 +01:00
2014-01-14 22:06:07 -05:00
2014-01-26 01:47:40 +01:00
2014-01-21 00:49:46 -08:00
2013-12-01 14:33:13 -08:00
2014-02-19 23:38:47 -08:00
2014-02-04 08:36:58 +01:00
2014-03-20 17:10:29 -07:00
2014-02-17 13:20:44 -08:00
2014-02-24 06:27:37 -08:00
2014-01-13 11:32:48 +01:00
2013-09-15 21:36:20 +02:00
2014-01-04 20:56:23 -08:00
2014-02-11 13:05:01 -05:00
2014-01-20 14:44:56 -05:00
2014-01-15 22:24:06 -08:00
2014-03-10 19:31:17 +02:00
2014-02-04 08:36:58 +01:00

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
Copyright (C) 2001-2014 Free Software Foundation, Inc.
See the end of the file for license conditions.


This directory contains the source files for the C component of GNU Emacs.
Nothing in this directory is needed for using Emacs once it is built
and installed, if the dumped Emacs (on Unix systems) is copied elsewhere.

See the files ../README and then ../INSTALL for installation instructions.

Under GNU and Unix systems, the file `Makefile.in' is used as a
template by the script `../configure' to produce `Makefile'.  This
is the file which actually controls the compilation of Emacs.
All of this should work transparently to the user; you should only
need to run `../configure', and then type `make'.


This file is part of GNU Emacs.

GNU Emacs is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

GNU Emacs is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.