+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
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)
{
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");