From 22a07c963e31570712e460d4fcf31bbebd4cec24 Mon Sep 17 00:00:00 2001 From: Michael Tremer Date: Tue, 11 Oct 2022 16:00:17 +0000 Subject: [PATCH] config: Add function to format values Signed-off-by: Michael Tremer --- src/libpakfire/config.c | 24 ++++++++++++++++++++++++ src/libpakfire/include/pakfire/config.h | 2 ++ 2 files changed, 26 insertions(+) diff --git a/src/libpakfire/config.c b/src/libpakfire/config.c index 2697b48f3..67c50e409 100644 --- a/src/libpakfire/config.c +++ b/src/libpakfire/config.c @@ -178,6 +178,30 @@ int pakfire_config_set(struct pakfire_config* config, return pakfire_string_set(entry->value, value); } +int pakfire_config_set_format(struct pakfire_config* config, + const char* section, const char* key, const char* format, ...) { + char* buffer = NULL; + va_list args; + int r; + + va_start(args, format); + r = vasprintf(&buffer, format, args); + va_end(args); + + // Break on any errors + if (r < 0) + return r; + + // Set the value + r = pakfire_config_set(config, section, key, buffer); + + // Cleanup + if (buffer) + free(buffer); + + return r; +} + static int pakfire_config_append(struct pakfire_config* config, const char* section, const char* key, const char* value2) { char* buffer = NULL; diff --git a/src/libpakfire/include/pakfire/config.h b/src/libpakfire/include/pakfire/config.h index 5688c015b..81534377b 100644 --- a/src/libpakfire/include/pakfire/config.h +++ b/src/libpakfire/include/pakfire/config.h @@ -33,6 +33,8 @@ struct pakfire_config* pakfire_config_unref(struct pakfire_config* config); int pakfire_config_set(struct pakfire_config* config, const char* section, const char* key, const char* value); +int pakfire_config_set_format(struct pakfire_config* config, + const char* section, const char* key, const char* format, ...); const char* pakfire_config_get(struct pakfire_config* config, const char* section, const char* key, const char* _default); -- 2.47.3