From 24cff0ec31970d5d57f61ba99ba7bfdda725cf94 Mon Sep 17 00:00:00 2001 From: Albert Cervin Date: Sun, 7 May 2023 23:59:22 +0200 Subject: Implement file reloading When for examplue using formatters or doing vc updates, it is useful if the file is reloaded from disk. --- src/dged/buffers.h | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) (limited to 'src/dged/buffers.h') diff --git a/src/dged/buffers.h b/src/dged/buffers.h index edf772c..8add8d8 100644 --- a/src/dged/buffers.h +++ b/src/dged/buffers.h @@ -1,17 +1,28 @@ +#include "vec.h" + #include struct buffer; +typedef void (*buffers_hook_cb)(struct buffer *buffer, void *userdata); + +struct buffers_hook { + buffers_hook_cb callback; + void *userdata; +}; + struct buffers { - // TODO: more buffers - struct buffer *buffers; - uint32_t nbuffers; - uint32_t capacity; + VEC(struct buffer) buffers; + VEC(struct buffers_hook) add_hooks; }; void buffers_init(struct buffers *buffers, uint32_t initial_capacity); struct buffer *buffers_add(struct buffers *buffers, struct buffer buffer); struct buffer *buffers_find(struct buffers *buffers, const char *name); +struct buffer *buffers_find_by_filename(struct buffers *buffers, const char *path); + +uint32_t buffers_add_add_hook(struct buffers *buffers, buffers_hook_cb callback, void *userdata); +uint32_t buffers_add_remove_hook(struct buffers *buffers, buffers_hook_cb callback, void *userdata); void buffers_destroy(struct buffers *buffers); -- cgit v1.2.3