From: Chris Allegretta Date: Sun, 15 Nov 2015 07:01:31 +0000 (+0000) Subject: Backport r5379 from trunk. X-Git-Tag: v2.4.3~5 X-Git-Url: https://git.wh0rd.org/?a=commitdiff_plain;h=00b9555a85abc34b75bdae23bb8a9ec3c90a5601;p=nano.git Backport r5379 from trunk. git-svn-id: svn://svn.savannah.gnu.org/nano/branches/nano_2_4_branch@5419 35c25a1d-7b9e-4130-9fde-d3aeb78583b8 --- diff --git a/ChangeLog b/ChangeLog index f3bbd75e..29f9a936 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2015-10-29 Benno Schulenberg + * 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 * src/winio.c (display_string, edit_draw): Force a redraw of a line only when it contains a multicolumn character, to spare all regular diff --git a/src/text.c b/src/text.c index 2ff2f21e..82038154 100644 --- a/src/text.c +++ b/src/text.c @@ -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;