From 02b8aeab41c96bdc39dc8632cf2076425861d966 Mon Sep 17 00:00:00 2001 From: Michael Tremer Date: Mon, 10 Feb 2025 14:59:13 +0000 Subject: [PATCH] json: Add function to add formatted strings to an array Signed-off-by: Michael Tremer --- src/pakfire/json.c | 21 +++++++++++++++++++++ src/pakfire/json.h | 1 + 2 files changed, 22 insertions(+) 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); -- 2.39.5