From: Michael Tremer Date: Tue, 11 Oct 2022 16:00:17 +0000 (+0000) Subject: config: Add function to format values X-Git-Tag: 0.9.28~256 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=22a07c963e31570712e460d4fcf31bbebd4cec24;p=pakfire.git config: Add function to format values Signed-off-by: Michael Tremer --- 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);