From a123725a12e948d78badb2cb686d38548f1c633b Mon Sep 17 00:00:00 2001 From: Albert Cervin Date: Thu, 6 Apr 2023 23:23:46 +0200 Subject: Implement window handling Also implement searching. fix undo boundaries when it checked for other save point, it used && instead of == which caused it to overwrite other types. Fix bytes vs chars bug in text_get_region --- src/undo.h | 66 -------------------------------------------------------------- 1 file changed, 66 deletions(-) delete mode 100644 src/undo.h (limited to 'src/undo.h') diff --git a/src/undo.h b/src/undo.h deleted file mode 100644 index 1ce3a8a..0000000 --- a/src/undo.h +++ /dev/null @@ -1,66 +0,0 @@ -#include "vec.h" -#include -#include - -enum undo_record_type { - Undo_Boundary = 1, - Undo_Add = 2, - Undo_Delete = 3, -}; - -struct position { - uint32_t row; - uint32_t col; -}; - -struct undo_boundary { - bool save_point; -}; - -struct undo_add { - struct position begin; - struct position end; -}; - -struct undo_delete { - struct position pos; - uint8_t *data; - uint32_t nbytes; -}; - -struct undo_record { - enum undo_record_type type; - - union { - struct undo_boundary boundary; - struct undo_add add; - struct undo_delete delete; - }; -}; - -#define INVALID_TOP -1 - -struct undo_stack { - VEC(struct undo_record) records; - uint32_t top; - bool undo_in_progress; -}; - -void undo_init(struct undo_stack *undo, uint32_t initial_capacity); -void undo_clear(struct undo_stack *undo); -void undo_destroy(struct undo_stack *undo); - -uint32_t undo_push_boundary(struct undo_stack *undo, - struct undo_boundary boundary); - -uint32_t undo_push_add(struct undo_stack *undo, struct undo_add add); -uint32_t undo_push_delete(struct undo_stack *undo, struct undo_delete delete); - -void undo_begin(struct undo_stack *undo); -void undo_next(struct undo_stack *undo, struct undo_record **records_out, - uint32_t *nrecords_out); -void undo_end(struct undo_stack *undo); - -uint32_t undo_size(struct undo_stack *undo); -uint32_t undo_current_position(struct undo_stack *undo); -const char *undo_dump(struct undo_stack *undo); -- cgit v1.2.3