From 26eed9d406b2818e23ce6e6a5f1a82416a9bb2ff Mon Sep 17 00:00:00 2001 From: Benno Schulenberg Date: Wed, 28 Oct 2015 20:49:16 +0000 Subject: [PATCH] Removing a condition that can never occur. git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@5376 35c25a1d-7b9e-4130-9fde-d3aeb78583b8 --- ChangeLog | 2 ++ src/text.c | 14 ++++++-------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/ChangeLog b/ChangeLog index cf8993da..4635bb6c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -2,6 +2,8 @@ * src/text.c (do_redo): For an INSERT, 'u->mark_begin_lineno' is not an actual line number, so spoof it. It can be spoofed, because 'f' is not used for the INSERT case. This fixes Savannah bug #45524. + * src/text.c (do_redo): Remove a condition that can never occur. + Also rewrite a loop to become somewhat clearer. 2015-10-27 Benno Schulenberg * src/move.c (do_next_word): Rewrite this function to use the same diff --git a/src/text.c b/src/text.c index e1b42f78..e704a36c 100644 --- a/src/text.c +++ b/src/text.c @@ -624,20 +624,18 @@ void do_undo(void) /* Redo the last thing(s) we undid. */ void do_redo(void) { - undo *u = openfile->undotop; size_t len = 0; char *data, *redidmsg = NULL; + undo *u = openfile->undotop; - for (; u != NULL && u->next != openfile->current_undo; u = u->next) - ; - if (!u) { + /* Get the previous undo item. */ + while (u->next != openfile->current_undo && u != NULL) + u = u->next; + + if (u == NULL) { statusbar(_("Nothing to re-do!")); return; } - if (u->next != openfile->current_undo) { - statusbar(_("Internal error: cannot set up redo. Please save your work.")); - return; - } filestruct *f = fsfromline(u->type == INSERT ? 1 : u->mark_begin_lineno); if (!f) { -- 2.39.5