diff options
| author | Joseph Hunkeler <jhunkeler@gmail.com> | 2026-04-27 11:13:57 -0400 |
|---|---|---|
| committer | Joseph Hunkeler <jhunkeler@gmail.com> | 2026-04-27 11:13:57 -0400 |
| commit | d9ed9eb3e5ac9f822c09fd17080d1848d95df7de (patch) | |
| tree | 5210204f8fb772f5e29e0b7b9f35c1a8c9ee4226 /src | |
| parent | a54a712ab47a4a5b99cc6c8fc8fbfcb6c5c995f3 (diff) | |
| download | stasis-d9ed9eb3e5ac9f822c09fd17080d1848d95df7de.tar.gz | |
ini_write: Add debug statements
Diffstat (limited to 'src')
| -rw-r--r-- | src/lib/core/ini.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/src/lib/core/ini.c b/src/lib/core/ini.c index 12541f5..77f4094 100644 --- a/src/lib/core/ini.c +++ b/src/lib/core/ini.c @@ -431,6 +431,7 @@ int ini_write(struct INIFILE *ini, FILE **stream, unsigned mode) { char *value = data->value; unsigned *hint = &data->type_hint; memset(outvalue, 0, sizeof(outvalue)); + SYSDEBUG("%s", "outvalue zeroed"); if (key && value) { int err = 0; @@ -458,15 +459,19 @@ int ini_write(struct INIFILE *ini, FILE **stream, unsigned mode) { size_t len = 0; if (*hint == INIVAL_TYPE_STR_ARRAY) { + SYSDEBUG("%s", "array hint."); int leading_space = isspace(*render); if (leading_space) { len = sizeof(outvalue) - (size_t) snprintf(NULL, 0, "%s" LINE_SEP, render); + SYSDEBUG("has leading space. buffer remaining=%zu", len); snprintf(outvalue + strlen(outvalue), len, "%s" LINE_SEP, render); } else { len = sizeof(outvalue) - (size_t) snprintf(NULL, 0, " %s" LINE_SEP, render); + SYSDEBUG("no leading space. buffer remaining=%zu", len); snprintf(outvalue + strlen(outvalue), len, " %s" LINE_SEP, render); } } else { + SYSDEBUG("string hint. buffer remaining=%zu", len); len = sizeof(outvalue) - (size_t) snprintf(NULL, 0, "%s", render); snprintf(outvalue + strlen(outvalue), len, "%s", render); } @@ -476,7 +481,11 @@ int ini_write(struct INIFILE *ini, FILE **stream, unsigned mode) { } guard_array_free(parts); strip(outvalue); - strncat(outvalue, LINE_SEP, sizeof(outvalue) - strlen(outvalue) - 1); + + SYSDEBUG("%s", "appending line separator to buffer"); + snprintf(outvalue + strlen(outvalue), sizeof(outvalue) - strlen(outvalue), "%s", LINE_SEP); + SYSDEBUG("buffer final length: %zu", strlen(outvalue)); + fprintf(*stream, "%s = %s%s", ini->section[x]->data[y]->key, *hint == INIVAL_TYPE_STR_ARRAY ? LINE_SEP : "", outvalue); guard_free(value); } else { |
