From: Michael Tremer Date: Sat, 11 Jan 2025 14:41:19 +0000 (+0000) Subject: packager: Refactor composing the filename X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=6a044362b86b215a6fdf8f57696d03af77715590;p=people%2Fric9%2Fpakfire.git packager: Refactor composing the filename Signed-off-by: Michael Tremer --- diff --git a/src/pakfire/packager.c b/src/pakfire/packager.c index 3546fb3ae..98c807058 100644 --- a/src/pakfire/packager.c +++ b/src/pakfire/packager.c @@ -220,16 +220,30 @@ struct pakfire_packager* pakfire_packager_unref( } const char* pakfire_packager_filename(struct pakfire_packager* packager) { - if (!*packager->filename) { - const char* filename = pakfire_package_get_string(packager->pkg, PAKFIRE_PKG_FILENAME); - - // Add arch - if (pakfire_package_is_source(packager->pkg)) - pakfire_string_set(packager->filename, filename); - else { - const char* arch = pakfire_package_get_string(packager->pkg, PAKFIRE_PKG_ARCH); + const char* filename = NULL; + const char* arch = NULL; + int r; - pakfire_string_format(packager->filename, "%s/%s", arch, filename); + if (!*packager->filename) { + filename = pakfire_package_get_string(packager->pkg, PAKFIRE_PKG_FILENAME); + if (!filename) + return NULL; + + // Store the string for source packages + if (pakfire_package_is_source(packager->pkg)) { + r = pakfire_string_set(packager->filename, filename); + if (r < 0) + return NULL; + + // For binary packages, we prepend the architecture + } else { + arch = pakfire_package_get_string(packager->pkg, PAKFIRE_PKG_ARCH); + if (!arch) + return NULL; + + r = pakfire_string_format(packager->filename, "%s/%s", arch, filename); + if (r < 0) + return NULL; } }