diff options
author | pommicket <pommicket@gmail.com> | 2025-09-14 00:33:18 -0400 |
---|---|---|
committer | pommicket <pommicket@gmail.com> | 2025-09-14 00:33:18 -0400 |
commit | d8192f73672488234bd12319229402153e7b6c21 (patch) | |
tree | 930ab2f93e337dfa6680945521e48154d51b33f9 /pom.c | |
parent | 1406758a5a2e38392e54cb7ba7a00a0f80ee1567 (diff) |
pom_conf_print implementation
Diffstat (limited to 'pom.c')
-rw-r--r-- | pom.c | 29 |
1 files changed, 28 insertions, 1 deletions
@@ -2,7 +2,6 @@ TODO: - error_to_string - conf_copy -- conf_print - typed get functions */ #include "pom.h" @@ -1412,3 +1411,31 @@ pom_conf_merge(pom_conf *conf, const pom_conf *other) { *conf = new_conf; return true; } + +void +pom_conf_print(const pom_conf *conf) { + const pom_item *item; + pom_item_iter *iter = NULL; + while ((item = pom_conf_next_item(conf, &iter))) { + printf("%s: \"", item->key); + char c; + for (const char *p = item->value; (c = *p); p++) { + if (c == '\n') { + printf("\\n"); + } else if (c == '\t') { + printf("\\t"); + } else if (c == '\r') { + printf("\\r"); + } else if (c == '\\') { + printf("\\\\"); + } else if (c == '"') { + printf("\\\""); + } else if (c < 0x20) { + printf("\\x%02X", c); + } else { + putchar(c); + } + } + printf("\"\n"); + } +} |