CE edit command
All checks were successful
Build documentation / build-and-deploy (push) Successful in 2m11s

This commit is contained in:
2026-03-05 16:29:59 +01:00
parent a5f5dbf21f
commit 25b289ccfb
11 changed files with 316 additions and 30 deletions

View File

@@ -1,6 +1,7 @@
#ifndef _GAPBUFFER_H
#define _GAPBUFFER_H
#include <arena.h>
#include <stddef.h>
struct gapbuffer {
@@ -10,22 +11,32 @@ struct gapbuffer {
size_t gap_end;
};
void gapbuffer_init (struct gapbuffer* gb, size_t capacity);
typedef void* (*gb_malloc_func_t) (void*, size_t);
void gapbuffer_fini (struct gapbuffer* gb);
typedef void* (*gb_realloc_func_t) (void*, void*, size_t, size_t);
typedef void (*gb_free_func_t) (void*, void*);
void gapbuffer_init (gb_malloc_func_t mallocfn, void* ctx, struct gapbuffer* gb, size_t capacity);
void gapbuffer_fini (gb_free_func_t freefn, void* ctx, struct gapbuffer* gb);
void gapbuffer_move (struct gapbuffer* gb, size_t pos);
void gapbuffer_insert (struct gapbuffer* gb, char c);
void gapbuffer_insert (gb_realloc_func_t reallocfn, void* ctx, struct gapbuffer* gb, char c);
void gapbuffer_backspace (struct gapbuffer* gb);
void gapbuffer_grow (struct gapbuffer* gb);
void gapbuffer_grow (gb_realloc_func_t reallocfn, void* ctx, struct gapbuffer* gb);
char* gapbuffer_get_string (struct gapbuffer* gb);
char* gapbuffer_get_string (gb_malloc_func_t mallocfn, void* ctx, struct gapbuffer* gb);
size_t gapbuffer_length (struct gapbuffer* gb);
char* gapbuffer_string_at (struct gapbuffer* gb, size_t pos);
char* gapbuffer_string_at (gb_malloc_func_t mallocfn, void* ctx, struct gapbuffer* gb, size_t pos);
char gapbuffer_at (struct gapbuffer* gb, size_t index);
void gapbuffer_delete_at (struct gapbuffer* gb, size_t index);
#endif // _GAPBUFFER_H