diff options
| author | Albert Cervin <albert@acervin.com> | 2023-11-26 23:08:06 +0100 |
|---|---|---|
| committer | Albert Cervin <albert@acervin.com> | 2024-01-15 10:39:56 +0100 |
| commit | 64d6816a36567274551dd4f067fe4d05b1445cc0 (patch) | |
| tree | 50f8dc895d363ab391d30226f665870d8ce263b5 /src/dged/settings.c | |
| parent | c87888f10dfb54590c5aae8311b7aff887193d9a (diff) | |
| download | dged-64d6816a36567274551dd4f067fe4d05b1445cc0.tar.gz dged-64d6816a36567274551dd4f067fe4d05b1445cc0.tar.xz dged-64d6816a36567274551dd4f067fe4d05b1445cc0.zip | |
Completion rework
- Add support for building with clang
Also fix some annoying bugs:
- Visual column was wrong when using tabs
- Add shift-tab for inserting an actual tab
- Fix minibuffer sometimes having dot above it
Diffstat (limited to 'src/dged/settings.c')
| -rw-r--r-- | src/dged/settings.c | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/src/dged/settings.c b/src/dged/settings.c index 4370aa9..7b5e4dc 100644 --- a/src/dged/settings.c +++ b/src/dged/settings.c @@ -116,6 +116,9 @@ static int32_t parse_toml(struct parser *state, char **errmsgs[]) { VEC_INIT(&errs, 16); struct token t = {0}; + int64_t i = 0; + bool b = false; + char *v = NULL, *err = NULL; while (parser_next_token(state, &t)) { switch (t.type) { case Token_Table: @@ -145,26 +148,26 @@ static int32_t parse_toml(struct parser *state, char **errmsgs[]) { curkey = calloc(len, 1); if (curtbl != NULL) { strcpy(curkey, curtbl); - strncat(curkey, ".", 1); + curkey[strlen(curtbl)] = '.'; } strncat(curkey, (char *)t.data, t.len); break; case Token_IntValue: - int64_t i = *((int64_t *)t.data); + i = *((int64_t *)t.data); settings_upsert(curkey, (struct setting_value){.type = Setting_Number, .number_value = i}); break; case Token_BoolValue: - bool b = *((bool *)t.data); + b = *((bool *)t.data); settings_upsert(curkey, (struct setting_value){.type = Setting_Bool, .bool_value = b}); break; case Token_StringValue: - char *v = calloc(t.len + 1, 1); + v = calloc(t.len + 1, 1); strncpy(v, (char *)t.data, t.len); settings_upsert(curkey, (struct setting_value){.type = Setting_String, .string_value = v}); @@ -172,11 +175,14 @@ static int32_t parse_toml(struct parser *state, char **errmsgs[]) { break; case Token_Error: - char *err = malloc(t.len + 128); + err = malloc(t.len + 128); snprintf(err, t.len + 128, "error (%d:%d): %.*s\n", t.row, t.col, t.len, (char *)t.data); VEC_PUSH(&errs, err); break; + + case Token_Comment: + break; } } |
