From: Michael Tremer Date: Mon, 10 Feb 2025 14:59:13 +0000 (+0000) Subject: json: Add function to add formatted strings to an array X-Git-Tag: 0.9.30~53 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=02b8aeab41c96bdc39dc8632cf2076425861d966;p=pakfire.git json: Add function to add formatted strings to an array Signed-off-by: Michael Tremer --- diff --git a/src/pakfire/json.c b/src/pakfire/json.c index ded6663c..bdceb3ba 100644 --- a/src/pakfire/json.c +++ b/src/pakfire/json.c @@ -244,6 +244,27 @@ int pakfire_json_array_add_string(struct json_object* array, const char* s) { return json_object_array_add(array, object); } +int pakfire_json_array_add_stringf(struct json_object* array, const char* format, ...) { + char* buffer = NULL; + va_list args; + int r; + + // Format the input + va_start(args, format); + r = vasprintf(&buffer, format, args); + va_end(args); + if (r < 0) + return r; + + // Add the string to the array + r = pakfire_json_array_add_string(array, buffer); + + // Cleanup + free(buffer); + + return r; +} + static int __pakfire_json_get_object(struct json_object* json, const char* key, const json_type type, struct json_object** o) { struct json_object* object = NULL; diff --git a/src/pakfire/json.h b/src/pakfire/json.h index 438398c0..764bf2a7 100644 --- a/src/pakfire/json.h +++ b/src/pakfire/json.h @@ -48,6 +48,7 @@ int pakfire_json_add_object(struct json_object* json, const char* name, struct j int pakfire_json_add_array(struct json_object* json, const char* name, struct json_object** array); int pakfire_json_array_add_string(struct json_object* array, const char* s); +int pakfire_json_array_add_stringf(struct json_object* array, const char* format, ...); int pakfire_json_get_string(struct json_object* json, const char* key, const char** value); int pakfire_json_get_int64(struct json_object* json, const char* key, int64_t* value);