mirror of
git://git.sv.gnu.org/nano.git
synced 2025-03-15 05:52:59 +03:00
- 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
This commit is contained in:
parent
14c8620e0b
commit
ea577874ef
17
src/text.c
17
src/text.c
@ -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;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user