]> git.wh0rd.org Git - nano.git/commitdiff
Discarding the entire undo stack, to prevent nano from making mistakes
authorBenno Schulenberg <bensberg@justemail.net>
Thu, 3 Dec 2015 09:17:06 +0000 (09:17 +0000)
committerBenno Schulenberg <bensberg@justemail.net>
Thu, 3 Dec 2015 09:17:06 +0000 (09:17 +0000)
when trying to undo edits after an indentation change.
This works around Savannah bug #46591.

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

ChangeLog
src/text.c

index ca9a572082ac0c0dd89f42017ec8b922c8ff7d30..e791f69d73035d2363edd640f72d2bb63d9bf532 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -4,6 +4,9 @@
        * src/text.c (do_justify): Discard the entire undo stack, to prevent
        nano from dying (or making mistakes) when trying to undo edits after
        a justification.  This works around Savannah bug #45531.
+       * src/text.c (do_indent): Also here discard the entire undo stack, to
+       prevent nano from making mistakes when trying to undo edits after an
+       indentation change.  This works around Savannah bug #46591.
 
 2015-12-02  Benno Schulenberg  <bensberg@justemail.net>
        * doc/syntax/python.nanorc: Don't colour triple quotes by themselves.
index f0fe45ddadbb5533db719c8fc83a29a18920658c..d11de946a579c57598c1a7f518c8fe4912ab27b8 100644 (file)
@@ -394,6 +394,11 @@ void do_indent(ssize_t cols)
        free(line_indent);
 
     if (indent_changed) {
+       /* Throw away the undo stack, to prevent making mistakes when
+        * the user tries to undo something in the reindented text. */
+       discard_until(NULL);
+       openfile->current_undo = NULL;
+
        /* Mark the file as modified. */
        set_modified();