staden-lg/src/staden/undo.h

37 lines
844 B
C

#ifndef _undo_h
#define _undo_h
#include "edUtils.h"
enum undoEvents {
undoDelete=0,
undoInsert,
undoReplace,
undoExtend,
undoUnextend,
undoNullCommand,
undoMark
};
typedef struct bnode *UndoBucketPtr;
typedef struct bnode{
int event;
int sequence;
int position;
int character;
struct bnode *next;
EdStructPtr xx;
int time;
} UndoBucket;
extern UndoBucketPtr bucketStack;
extern void cleanUpStack(UndoBucketPtr *stack);
extern void recordEdit (UndoBucketPtr *stack, EdStruct *xx, int undoEvent, int seq, int pos, char ch, int time);
extern void retrieveEdit (UndoBucketPtr *stack, EdStruct **xx, int *undoEvent, int *seq, int *pos, char *ch, int *time);
extern void cleanUpAllStacks();
extern int editsMade(EdStruct *xx);
extern int get_uniq_id();
#endif /* _undo_h */