Moving the trimming of the undo stack into a separate function.

git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@5472 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
master
Benno Schulenberg 2015-12-03 08:50:34 +00:00
parent a41968eeef
commit ee5cdcbce5
2 changed files with 20 additions and 8 deletions

View File

@ -1,3 +1,7 @@
2015-12-03 Benno Schulenberg <bensberg@justemail.net>
* src/text.c (discard_until): Move the trimming of the undo stack
into a separate function, so it can be used elsewhere.
2015-12-02 Benno Schulenberg <bensberg@justemail.net>
* doc/syntax/python.nanorc: Don't colour triple quotes by themselves.
* doc/syntax/python.nanorc: Treat backslashed quotes properly, and

View File

@ -904,6 +904,21 @@ bool execute_command(const char *command)
return TRUE;
}
/* Discard undo items that are newer than thisone, or all if NULL. */
void discard_until(undo *thisone)
{
undo *dropit = openfile->undotop;
while (dropit != NULL && dropit != thisone) {
openfile->undotop = dropit->next;
free(dropit->strdata);
if (dropit->cutbuffer)
free_filestruct(dropit->cutbuffer);
free(dropit);
dropit = openfile->undotop;
}
}
/* Add a new undo struct to the top of the current pile. */
void add_undo(undo_type action)
{
@ -918,14 +933,7 @@ void add_undo(undo_type action)
return;
/* Blow away newer undo items if we add somewhere in the middle. */
while (openfile->undotop != NULL && openfile->undotop != u) {
undo *dropit = openfile->undotop;
openfile->undotop = openfile->undotop->next;
free(dropit->strdata);
if (dropit->cutbuffer)
free_filestruct(dropit->cutbuffer);
free(dropit);
}
discard_until(u);
#ifdef DEBUG
fprintf(stderr, " >> Adding an undo...\n");