diff options
author | Mole Shang <[email protected]> | 2023-07-25 09:27:26 +0800 |
---|---|---|
committer | Mole Shang <[email protected]> | 2023-08-05 23:19:46 +0800 |
commit | ed8f6df90b0c39835198d5b7af4bbd391362f180 (patch) | |
tree | 907ba31bac854eb5dc8a2781825e24c049b10580 /src/logger.c | |
download | hinata-ed8f6df90b0c39835198d5b7af4bbd391362f180.tar.gz hinata-ed8f6df90b0c39835198d5b7af4bbd391362f180.tar.bz2 hinata-ed8f6df90b0c39835198d5b7af4bbd391362f180.zip |
hinata: initial commit
Diffstat (limited to 'src/logger.c')
-rw-r--r-- | src/logger.c | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/src/logger.c b/src/logger.c new file mode 100644 index 0000000..0fef20a --- /dev/null +++ b/src/logger.c @@ -0,0 +1,32 @@ +#include <stdarg.h> +#include <stdio.h> + +#include "logger.h" +#include "nuklear.h" + +static struct logger logger = {0}; + +struct logger *setup_logger(void) { + return &logger; +} + +void append_log(const char *fmt, ...) { + va_list ap1; + va_start(ap1, fmt); + va_list ap2; + va_copy(ap2, ap1); + char buf[vsnprintf(NULL, 0, fmt, ap1) + 1]; + va_end(ap1); + vsnprintf(buf, sizeof(buf), fmt, ap2); + va_end(ap2); + nk_str_append_str_char(&logger.text_edit->string, buf); + logger.box_lines++; + logger.scrollbar->y += logger.extend_box ? (logger.font_height + 2) : 0; + DEBUG_PRINT("scrollbar w: %u, h: %u\n", logger.scrollbar->x, + logger.scrollbar->y); +} + +void clear_log() { + nk_textedit_delete(logger.text_edit, 0, logger.text_edit->string.len); + logger.box_lines = 0; +} |