]> git.wh0rd.org Git - nano.git/commitdiff
Checking for "nothing to redo" earlier, in order to restore the
authorBenno Schulenberg <bensberg@justemail.net>
Thu, 29 Oct 2015 17:02:13 +0000 (17:02 +0000)
committerBenno Schulenberg <bensberg@justemail.net>
Thu, 29 Oct 2015 17:02:13 +0000 (17:02 +0000)
possible warning about an internal error.

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

ChangeLog
src/text.c

index 830386f03189bbbd51c449f47ba3a2acc8144ce7..785da688da2adf03eb0e8bd27d1cc641be223f0a 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -2,6 +2,8 @@
        * 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.
+       * src/text.c (do_redo): Check for "nothing to redo" earlier, so we
+       can restore the possible warning about an internal error.
 
 2015-10-29  David Lawrence Ramsey  <pooka109@gmail.com>
        * src/files.c (do_writeout), src/nano.c (no_current_file_name_warning,
index 1fed0638844b11ed734e4c207d59efceae03c689..c24ddeb1e2e70f4ed8400888eaadf2cb77ee7ff5 100644 (file)
@@ -628,12 +628,17 @@ void do_redo(void)
     char *data, *redidmsg = NULL;
     undo *u = openfile->undotop;
 
+    if (u == NULL || u == openfile->current_undo) {
+       statusbar(_("Nothing to re-do!"));
+       return;
+    }
+
     /* Get the previous undo item. */
     while (u != NULL && u->next != openfile->current_undo)
        u = u->next;
 
-    if (u == NULL) {
-       statusbar(_("Nothing to re-do!"));
+    if (u->next != openfile->current_undo) {
+       statusbar(_("Internal error: cannot set up redo.  Please save your work."));
        return;
     }