}
static int pakfire_config_import_distro(struct pakfire* pakfire) {
+ int r;
+
// Nothing to do if there is no distro section
if (!pakfire_config_has_section(pakfire->config, "distro"))
return 0;
// Name
const char* name = pakfire_config_get(pakfire->config, "distro", "name", NULL);
- if (name)
- pakfire_string_set(pakfire->distro.name, name);
+ if (name) {
+ r = pakfire_string_set(pakfire->distro.name, name);
+ if (r < 0) {
+ CTX_ERROR(pakfire->ctx, "Could not set distro name: %s\n", strerror(-r));
+ return r;
+ }
+ }
// ID
const char* id = pakfire_config_get(pakfire->config, "distro", "id", NULL);
- if (id)
- pakfire_string_set(pakfire->distro.id, id);
+ if (id) {
+ r = pakfire_string_set(pakfire->distro.id, id);
+ if (r < 0) {
+ CTX_ERROR(pakfire->ctx, "Could not set distro ID: %s\n", strerror(-r));
+ return r;
+ }
+ }
// Version ID
const char* version_id = pakfire_config_get(pakfire->config, "distro", "version_id", NULL);
- if (version_id)
- pakfire_string_set(pakfire->distro.version_id, version_id);
+ if (version_id) {
+ r = pakfire_string_set(pakfire->distro.version_id, version_id);
+ if (r < 0) {
+ CTX_ERROR(pakfire->ctx, "Could not set distro version ID: %s\n", strerror(-r));
+ return r;
+ }
+ }
// Codename
const char* codename = pakfire_config_get(pakfire->config, "distro", "codename", NULL);
- if (codename)
- pakfire_string_set(pakfire->distro.version_codename, codename);
+ if (codename) {
+ r = pakfire_string_set(pakfire->distro.version_codename, codename);
+ if (r < 0) {
+ CTX_ERROR(pakfire->ctx, "Could not set distro codename: %s\n", strerror(-r));
+ return r;
+ }
+ }
// Fill in version
- if (*pakfire->distro.version_codename)
- pakfire_string_format(pakfire->distro.version, "%s (%s)",
- pakfire->distro.version_id, pakfire->distro.version_codename);
- else
- pakfire_string_set(pakfire->distro.version, pakfire->distro.version_id);
+ if (*pakfire->distro.version_codename) {
+ r = pakfire_string_format(pakfire->distro.version, "%s (%s)",
+ pakfire->distro.version_id, pakfire->distro.version_codename);
+ if (r < 0) {
+ CTX_ERROR(pakfire->ctx, "Could not set distro version: %s\n", strerror(-r));
+ return r;
+ }
+ } else {
+ r = pakfire_string_set(pakfire->distro.version, pakfire->distro.version_id);
+ if (r < 0) {
+ CTX_ERROR(pakfire->ctx, "Could not set distro version: %s\n", strerror(-r));
+ return r;
+ }
+ }
// Fill in pretty name
- pakfire_string_format(pakfire->distro.pretty_name, "%s %s",
- pakfire->distro.name, pakfire->distro.version);
+ r = pakfire_string_format(pakfire->distro.pretty_name, "%s %s",
+ pakfire->distro.name, pakfire->distro.version);
+ if (r < 0) {
+ CTX_ERROR(pakfire->ctx, "Could not set distro pretty name: %s\n", strerror(-r));
+ return r;
+ }
// Vendor
const char* vendor = pakfire_config_get(pakfire->config, "distro", "vendor", NULL);
- if (vendor)
- pakfire_string_set(pakfire->distro.vendor, vendor);
+ if (vendor) {
+ r = pakfire_string_set(pakfire->distro.vendor, vendor);
+ if (r < 0) {
+ CTX_ERROR(pakfire->ctx, "Could not set distro vendor: %s\n", strerror(-r));
+ return r;
+ }
+ }
// Slogan
const char* slogan = pakfire_config_get(pakfire->config, "distro", "slogan", NULL);
- if (slogan)
- pakfire_string_set(pakfire->distro.slogan, slogan);
+ if (slogan) {
+ r = pakfire_string_set(pakfire->distro.slogan, slogan);
+ if (r < 0) {
+ CTX_ERROR(pakfire->ctx, "Could not set distro slogan: %s\n", strerror(-r));
+ return r;
+ }
+ }
return 0;
}