From bb2dff871b6a5b1362a2f867e586b06dc6b49996 Mon Sep 17 00:00:00 2001 From: Albert Cervin Date: Fri, 22 Mar 2024 20:39:35 +0100 Subject: Initial OpenBSD support Reactor is not really implemented yet but at least it builds and the tests run. --- src/dged/buffer_view.c | 6 +++++- src/dged/reactor-kqueue.c | 45 +++++++++++++++++++++++++++++++++++++++++++++ src/dged/settings.c | 2 +- 3 files changed, 51 insertions(+), 2 deletions(-) create mode 100644 src/dged/reactor-kqueue.c (limited to 'src/dged') diff --git a/src/dged/buffer_view.c b/src/dged/buffer_view.c index 23bd8e2..49d938a 100644 --- a/src/dged/buffer_view.c +++ b/src/dged/buffer_view.c @@ -353,7 +353,11 @@ static void render_modeline(struct modeline *modeline, struct buffer_view *view, if (strcmp(buf, (char *)modeline->buffer) != 0) { modeline->buffer = realloc(modeline->buffer, width * 4); modeline->sz = width * 4; - strcpy((char *)modeline->buffer, buf); + + uint32_t len = strlen(buf); + len = (len + 1) > modeline->sz ? modeline->sz - 1 : len; + memcpy(modeline->buffer, buf, len); + modeline->buffer[len] = '\0'; } command_list_set_index_color_bg(commands, 8); diff --git a/src/dged/reactor-kqueue.c b/src/dged/reactor-kqueue.c new file mode 100644 index 0000000..5543c04 --- /dev/null +++ b/src/dged/reactor-kqueue.c @@ -0,0 +1,45 @@ +#include "reactor.h" + +#include + +struct reactor { + +}; + +struct reactor *reactor_create() { + struct reactor *reactor = calloc(1, sizeof(struct reactor)); + + return reactor; +} + +void reactor_destroy(struct reactor *reactor) { + free(reactor); +} + +void reactor_update(struct reactor *reactor) { + +} + +bool reactor_poll_event(struct reactor *reactor, uint32_t ev_id) { + return false; +} + +uint32_t reactor_register_interest(struct reactor *reactor, int fd, enum interest interest) { + return -1; +} + +uint32_t reactor_watch_file(struct reactor *reactor, const char *path, uint32_t mask) { + return -1; +} + +void reactor_unwatch_file(struct reactor *reactor, uint32_t id) { + +} + +bool reactor_next_file_event(struct reactor *reactor, struct file_event *out) { + return false; +} + +void reactor_unregister_interest(struct reactor *reactor, uint32_t ev_id) { + +} diff --git a/src/dged/settings.c b/src/dged/settings.c index fc7d23c..e63862f 100644 --- a/src/dged/settings.c +++ b/src/dged/settings.c @@ -150,7 +150,7 @@ static int32_t parse_toml(struct parser *state, char **errmsgs[]) { curkey = calloc(len, 1); if (curtbl != NULL) { - strcpy(curkey, curtbl); + memcpy(curkey, curtbl, strlen(curtbl)); curkey[strlen(curtbl)] = '.'; } -- cgit v1.2.3