Commit ea577874 authored by Chris Allegretta's avatar Chris Allegretta
Browse files

- Add redo of an insert

- Fix bug in fsfromlineno
- Tiny cleanups in undo



git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4292 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
No related merge requests found
Showing with 14 additions and 7 deletions
+14 -7
......@@ -498,6 +498,7 @@ void do_redo(void)
{
undo *u = openfile->undotop;
filestruct *f = openfile->current, *t;
filestruct *oldcutbuffer = cutbuffer, *oldcutbottom = cutbottom;
int len = 0, i;
char *undidmsg, *data;
......@@ -619,6 +620,15 @@ void do_redo(void)
u->strdata = f->data;
f->data = data;
break;
case INSERT:
undidmsg = _("text insert");
cutbuffer = u->cutbuffer;
cutbottom = u->cutbottom;
do_gotolinecolumn(u->lineno, u->begin+1, FALSE, FALSE, FALSE, FALSE);
do_uncut_text();
cutbuffer = oldcutbuffer;
cutbottom = oldcutbottom;
break;
default:
undidmsg = _("wtf?");
break;
......@@ -804,11 +814,8 @@ void add_undo(undo_type current_action)
fs->undotop = fs->undotop->next;
if (u2->strdata != NULL)
free(u2->strdata);
while (u2->cutbuffer != NULL) {
filestruct *f2 = u2->cutbuffer->next;
u2->cutbuffer = u2->cutbuffer->next;
free(f2);
}
if (u2->cutbuffer);
free_filestruct(u2->cutbuffer);
free(u2);
}
......
......@@ -613,10 +613,10 @@ filestruct *fsfromline(ssize_t lineno)
;
else
for (; f->lineno != lineno && f->next != NULL; f = f->next)
;
if (f->lineno != lineno)
return NULL;
f = NULL;
return f;
}
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment