]> git.wh0rd.org Git - nano.git/commitdiff
Skipping the addition of an undo only when the current action equals the
authorBenno Schulenberg <bensberg@justemail.net>
Thu, 29 Oct 2015 16:52:42 +0000 (16:52 +0000)
committerBenno Schulenberg <bensberg@justemail.net>
Thu, 29 Oct 2015 16:52:42 +0000 (16:52 +0000)
last action.  Necessary for when typing text is broken by an undo+redo.

git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@5379 35c25a1d-7b9e-4130-9fde-d3aeb78583b8

ChangeLog
src/text.c

index 0300230c3b5d4e127158a7a1fc31c5a596161172..830386f03189bbbd51c449f47ba3a2acc8144ce7 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2015-10-29  Benno Schulenberg  <bensberg@justemail.net>
+       * src/text.c (add_undo): Only skip adding an undo when the current
+       action equals the last action.  This condition is needed for when
+       typing text is broken by an undo+redo.  Fixes Savannah bug #46323.
+
 2015-10-29  David Lawrence Ramsey  <pooka109@gmail.com>
        * src/files.c (do_writeout), src/nano.c (no_current_file_name_warning,
        do_exit): When option -t is given, make ^O work the same way as under
index c207b4676610c2c1aa876265f6cd22c8ce8bf4c2..1fed0638844b11ed734e4c207d59efceae03c689 100644 (file)
@@ -912,7 +912,7 @@ void add_undo(undo_type action)
 
     /* When doing contiguous adds or contiguous cuts -- which means: with
      * no cursor movement in between -- don't add a new undo item. */
-    if (u && u->mark_begin_lineno == fs->current->lineno &&
+    if (u && u->mark_begin_lineno == fs->current->lineno && action == fs->last_action &&
        ((action == ADD && u->type == ADD && u->mark_begin_x == fs->current_x) ||
        (action == CUT && u->type == CUT && !u->mark_set && keeping_cutbuffer())))
        return;