summaryrefslogtreecommitdiff
path: root/src/dged
diff options
context:
space:
mode:
authorAlbert Cervin <albert@acervin.com>2024-03-22 20:39:35 +0100
committerAlbert Cervin <albert@acervin.com>2024-03-22 20:39:35 +0100
commitbb2dff871b6a5b1362a2f867e586b06dc6b49996 (patch)
tree22811279a106e8f95ab727c59ec11399c98969a4 /src/dged
parent5ce90cb97a08c6057224b3a8181e2e757fcfd4e2 (diff)
downloaddged-bb2dff871b6a5b1362a2f867e586b06dc6b49996.tar.gz
dged-bb2dff871b6a5b1362a2f867e586b06dc6b49996.tar.xz
dged-bb2dff871b6a5b1362a2f867e586b06dc6b49996.zip
Initial OpenBSD support
Reactor is not really implemented yet but at least it builds and the tests run.
Diffstat (limited to 'src/dged')
-rw-r--r--src/dged/buffer_view.c6
-rw-r--r--src/dged/reactor-kqueue.c45
-rw-r--r--src/dged/settings.c2
3 files changed, 51 insertions, 2 deletions
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 <stdlib.h>
+
+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)] = '.';
}