]> git.wh0rd.org Git - nano.git/commitdiff
Add undoing check for do_enter so redo doesn't blow up.
authorChris Allegretta <chrisa@asty.org>
Sat, 25 Apr 2009 03:31:30 +0000 (03:31 +0000)
committerChris Allegretta <chrisa@asty.org>
Sat, 25 Apr 2009 03:31:30 +0000 (03:31 +0000)
Hate to piecemeal these fixed but system unstability is teh suck.

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

src/global.c
src/nano.c
src/proto.h
src/text.c

index 1816b52cda50e662d6bbdbfdf8aa9977d121ad8a..6345aeda8fdb47f8c9580c4fbecab7ede8133b4a 100644 (file)
@@ -1214,7 +1214,7 @@ void iso_me_harder_funcmap(short func)
     else if (func == DO_RIGHT)
        do_right();
     else if (func == DO_ENTER)
-       do_enter();
+       do_enter(FALSE);
     else if (func == DO_EXIT)
        do_exit();
     else if (func == DO_FIRST_LINE)
index e59526e20fba7c259d77514d3a47dda4a3f688e0..19a81cd0a6385497b147754ce79c9757707db178 100644 (file)
@@ -1853,7 +1853,7 @@ void do_output(char *output, size_t output_len, bool allow_cntrls)
                output[i] = '\n';
            /* Newline to Enter, if needed. */
            else if (output[i] == '\n') {
-               do_enter();
+               do_enter(FALSE);
                i++;
                continue;
            }
index ba59e51e5f8f1aca4fc889370ac28d4160bb3652..752bb1e42956a22a79f8c76f5fe9c5f7ca71326d 100644 (file)
@@ -624,7 +624,7 @@ void do_unindent(void);
 void do_undo(void);
 void do_redo(void);
 #endif
-void do_enter(void);
+void do_enter(bool undoing);
 #ifndef NANO_TINY
 RETSIGTYPE cancel_command(int signal);
 bool execute_command(const char *command);
index 1c809203fd8b17f0b09c6245b762aa26e9e6c1f4..62ef1ff9d7dff76d7d74865df6b6fa93006098e8 100644 (file)
@@ -608,7 +608,7 @@ void do_redo(void)
     case ENTER:
        undidmsg = _("line break");
        do_gotolinecolumn(u->lineno, u->begin+1, FALSE, FALSE, FALSE, FALSE);
-       do_enter();
+       do_enter(TRUE);
        break;
     case SPLIT:
        undidmsg = _("line wrap");
@@ -671,7 +671,7 @@ void do_redo(void)
 #endif /* !NANO_TINY */
 
 /* Someone hits Enter *gasp!* */
-void do_enter(void)
+void do_enter(bool undoing)
 {
     filestruct *newnode = make_new_node(openfile->current);
     size_t extra = 0;
@@ -679,7 +679,8 @@ void do_enter(void)
     assert(openfile->current != NULL && openfile->current->data != NULL);
 
 #ifndef NANO_TINY
-    update_undo(ENTER);
+    if (!undoing)
+       add_undo(ENTER);
 
 
     /* Do auto-indenting, like the neolithic Turbo Pascal editor. */