mirror of git://git.sv.gnu.org/nano.git
2008-10-04 Chris Allegretta <chrisa@asty.org>
* cut.c (Add_undo): Save last cut undo information so it can be used for next uncut, fixes Savannah bug 24183. git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4338 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
This commit is contained in:
parent
3c4e99137d
commit
5c1c143ed2
|
@ -1,3 +1,7 @@
|
||||||
|
2008-10-04 Chris Allegretta <chrisa@asty.org>
|
||||||
|
* cut.c (Add_undo): Save last cut undo information so it can be used for next uncut, fixes
|
||||||
|
Savannah bug 24183.
|
||||||
|
|
||||||
GNU nano 2.1.6 - 2008.10.03
|
GNU nano 2.1.6 - 2008.10.03
|
||||||
2008-10-03 Pascal Gentil <pascal.gentil@univ-rennes1.fr>
|
2008-10-03 Pascal Gentil <pascal.gentil@univ-rennes1.fr>
|
||||||
* fortran.nanorc: Sample python syntax highlighting file
|
* fortran.nanorc: Sample python syntax highlighting file
|
||||||
|
|
19
src/text.c
19
src/text.c
|
@ -822,6 +822,7 @@ void add_undo(undo_type current_action)
|
||||||
undo *u, *cutu;
|
undo *u, *cutu;
|
||||||
char *data;
|
char *data;
|
||||||
openfilestruct *fs = openfile;
|
openfilestruct *fs = openfile;
|
||||||
|
static undo *last_cutu = NULL; /* Last thing we cut to set up the undo for uncut */
|
||||||
|
|
||||||
/* Ugh, if we were called while cutting not-to-end, non-marked and on the same lineno,
|
/* Ugh, if we were called while cutting not-to-end, non-marked and on the same lineno,
|
||||||
we need to abort here */
|
we need to abort here */
|
||||||
|
@ -896,22 +897,22 @@ void add_undo(undo_type current_action)
|
||||||
u->mark_begin_x = openfile->mark_begin_x;
|
u->mark_begin_x = openfile->mark_begin_x;
|
||||||
}
|
}
|
||||||
u->to_end = (current_action == CUTTOEND);
|
u->to_end = (current_action == CUTTOEND);
|
||||||
|
last_cutu = u;
|
||||||
break;
|
break;
|
||||||
case UNCUT:
|
case UNCUT:
|
||||||
for (cutu = u; cutu != NULL && cutu->type != CUT; cutu = cutu->next)
|
if (!last_cutu)
|
||||||
;
|
statusbar(_("Internal error: can't setup uncut. Please save your work."));
|
||||||
if (cutu->type == CUT) {
|
else if (last_cutu->type == CUT) {
|
||||||
u->cutbuffer = cutu->cutbuffer;
|
u->cutbuffer = last_cutu->cutbuffer;
|
||||||
u->cutbottom = cutu->cutbottom;
|
u->cutbottom = last_cutu->cutbottom;
|
||||||
if (!cutu->mark_set)
|
if (!last_cutu->mark_set)
|
||||||
u->linescut = cutu->linescut;
|
u->linescut = last_cutu->linescut;
|
||||||
else {
|
else {
|
||||||
filestruct *c;
|
filestruct *c;
|
||||||
for (c = u->cutbuffer; c != NULL; c = c->next)
|
for (c = u->cutbuffer; c != NULL; c = c->next)
|
||||||
u->linescut++;
|
u->linescut++;
|
||||||
}
|
}
|
||||||
} else
|
}
|
||||||
statusbar(_("Internal error: can't setup uncut. Please save your work."));
|
|
||||||
break;
|
break;
|
||||||
case OTHER:
|
case OTHER:
|
||||||
statusbar(_("Internal error: unknown type. Please save your work."));
|
statusbar(_("Internal error: unknown type. Please save your work."));
|
||||||
|
|
Loading…
Reference in New Issue