diff options
| author | Albert Cervin <albert@acervin.com> | 2023-05-07 23:59:22 +0200 |
|---|---|---|
| committer | Albert Cervin <albert@acervin.com> | 2023-05-08 00:00:36 +0200 |
| commit | 24cff0ec31970d5d57f61ba99ba7bfdda725cf94 (patch) | |
| tree | 8304f69e38ec33d663db21ee26dbee14bf8d7a2f /src/dged/buffers.h | |
| parent | 8d73eace6806bd67852189b1a16de5895c565688 (diff) | |
| download | dged-24cff0ec31970d5d57f61ba99ba7bfdda725cf94.tar.gz dged-24cff0ec31970d5d57f61ba99ba7bfdda725cf94.tar.xz dged-24cff0ec31970d5d57f61ba99ba7bfdda725cf94.zip | |
Implement file reloading
When for examplue using formatters or doing vc updates, it is useful
if the file is reloaded from disk.
Diffstat (limited to 'src/dged/buffers.h')
| -rw-r--r-- | src/dged/buffers.h | 19 |
1 files changed, 15 insertions, 4 deletions
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 <stdint.h> 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); |
