junie-undo

This commit is contained in:
2025-11-29 11:55:55 -08:00
parent a574df2ab7
commit 0cfb06dff2
9 changed files with 388 additions and 57 deletions

View File

@@ -271,7 +271,9 @@ buffer_add_empty(void)
buf->dirty = 0;
buf->mark_set = 0;
buf->mark_curx = 0;
buf->mark_cury = 0;
buf->mark_cury = 0;
/* initialize undo tree for this buffer */
undo_tree_init(&buf->undo);
editor.buffers[editor.bufcount] = buf;
idx = (int)editor.bufcount;
@@ -397,14 +399,16 @@ buffer_close_current(void)
buffer_switch(nb);
}
b = editor.buffers[closing];
if (b) {
if (b->row) {
for (size_t i = 0; i < b->nrows; i++) {
ab_free(&b->row[i]);
}
free(b->row);
}
b = editor.buffers[closing];
if (b) {
/* free undo tree resources before freeing buffer */
undo_tree_free(&b->undo);
if (b->row) {
for (size_t i = 0; i < b->nrows; i++) {
ab_free(&b->row[i]);
}
free(b->row);
}
if (b->filename) {
free(b->filename);