Header
#ifndef UNDO
#define UNDO
#include "zipperBuffer.h"
typedef struct UndoStack UndoStack;
struct UndoStack {
RowList *forwards;
RowList *backwards;
int cursorX;
int cursorY;
UndoStack *tail;
};
UndoStack *undoCons(RowList *forwards,
RowList *backwards,
int cursorX,
int cursorY,
UndoStack *tail);
#endif
#include "undo.h"
UndoStack *undoCons(RowList *forwards,
RowList *backwards,
int cursorX,
int cursorY,
UndoStack *tail) {
UndoStack *new = malloc(sizeof(*new));
new->tail = tail;
new->forwards = forwards;
new->backwards = backwards;
new->cursorX = cursorX;
new->cursorY = cursorY;
return new;
}