diff options
| -rw-r--r-- | Makefile | 11 | ||||
| -rw-r--r-- | openbsd.mk | 4 | ||||
| -rw-r--r-- | src/dged/buffer_view.c | 6 | ||||
| -rw-r--r-- | src/dged/reactor-kqueue.c | 45 | ||||
| -rw-r--r-- | src/dged/settings.c | 2 |
5 files changed, 61 insertions, 7 deletions
@@ -1,7 +1,6 @@ # Makefile for bmake -.OBJDIR: ./build .PHONY: default clean check run debug debug-tests install format - +.OBJDIR: ./build SYNTAX_ENABLE ?= true default: dged @@ -29,7 +28,7 @@ TEST_SOURCES = test/assert.c test/buffer.c test/text.c test/utf8.c test/main.c \ test/command.c test/keyboard.c test/fake-reactor.c test/allocator.c \ test/minibuffer.c test/undo.c test/settings.c test/container.c -prefix ?= /usr +prefix ?= /usr/local datadir = $(prefix)/share/dged .SUFFIXES: @@ -60,6 +59,8 @@ UNAME_S != uname -s | tr '[:upper:]' '[:lower:]' . include "$(.CURDIR)/$(UNAME_S).mk" .endif +FORMAT_TOOL ?= clang-format + DEPS = $(SOURCES:.c=.d) $(MAIN_SOURCES:.c=.d) $(TEST_SOURCES:.c=.d) OBJS = $(SOURCES:.c=.o) @@ -99,7 +100,7 @@ run-tests: $(TEST_OBJS) $(OBJS) $(CC) $(LDFLAGS) $(TEST_OBJS) $(OBJS) -lm -o run-tests check: run-tests - clang-format --dry-run --Werror $(SOURCES:%.c=../%.c) $(MAIN_SOURCES:%.c=../%.c) $(TEST_SOURCES:%c=../%c) $(HEADERS:%.h=../%.h) + $(FORMAT_TOOL) --dry-run --Werror $(SOURCES:%.c=../%.c) $(MAIN_SOURCES:%.c=../%.c) $(TEST_SOURCES:%c=../%c) $(HEADERS:%.h=../%.h) ./run-tests run: dged @@ -112,7 +113,7 @@ debug-tests: run-tests gdb ./run-tests format: - clang-format -i $(SOURCES:%.c=../%.c) $(MAIN_SOURCES:%.c=../%.c) $(TEST_SOURCES:%c=../%c) $(HEADERS:%.h=../%.h) + $(FORMAT_TOOL) -i $(SOURCES:%.c=../%.c) $(MAIN_SOURCES:%.c=../%.c) $(TEST_SOURCES:%c=../%c) $(HEADERS:%.h=../%.h) clean: rm -f $(FILES) diff --git a/openbsd.mk b/openbsd.mk new file mode 100644 index 0000000..59e6ed2 --- /dev/null +++ b/openbsd.mk @@ -0,0 +1,4 @@ +CFLAGS += -DOPENBSD -DBSD + +PLATFORM_SOURCES += src/dged/reactor-kqueue.c +FORMAT_TOOL = clang-format-13 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)] = '.'; } |
