]> git.wh0rd.org Git - nano.git/commitdiff
Backport r5379 from trunk.
authorChris Allegretta <chrisa@asty.org>
Sun, 15 Nov 2015 07:01:31 +0000 (07:01 +0000)
committerChris Allegretta <chrisa@asty.org>
Sun, 15 Nov 2015 07:01:31 +0000 (07:01 +0000)
git-svn-id: svn://svn.savannah.gnu.org/nano/branches/nano_2_4_branch@5419 35c25a1d-7b9e-4130-9fde-d3aeb78583b8

ChangeLog
src/text.c

index f3bbd75e016fa93d83309ebea64031a99add35ea..29f9a93607bc83a99bd806c3d05c2493b2a728a8 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-09-05  Benno Schulenberg  <bensberg@justemail.net>
        * src/winio.c (display_string, edit_draw): Force a redraw of a line
        only when it contains a multicolumn character, to spare all regular
index 2ff2f21e340b60f688a29b316f433a520f5647f8..8203815464d5058832189060239570538fdec819 100644 (file)
@@ -867,7 +867,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;