// baseurl
const char* baseurl = pakfire_config_get(config, *section, "baseurl", NULL);
- if (baseurl)
- pakfire_repo_set_baseurl(repo, baseurl);
+ if (baseurl) {
+ r = pakfire_repo_set_baseurl(repo, baseurl);
+ if (r)
+ goto ERROR;
+ }
// Refresh Interval
const char* refresh = pakfire_config_get(config, *section, "refresh", NULL);
const char* pattern;
const char* replacement;
} replacements[] = {
- { "%{name}", pakfire_repo_get_name(repo) },
- { "%{arch}", pakfire_get_effective_arch(repo->pakfire) },
- { "%{distro}", pakfire_get_distro_id(repo->pakfire) },
+ { "%{name}", pakfire_repo_get_name(repo) },
+ { "%{arch}", pakfire_get_effective_arch(repo->pakfire) },
+ { "%{distro}", pakfire_get_distro_id(repo->pakfire) },
{ "%{version}", pakfire_get_distro_version_id(repo->pakfire) },
- { NULL, NULL },
+ { NULL },
};
char* buffer = strdup(url);
return NULL;
for (const struct replacement* repl = replacements; repl->pattern; repl++) {
+ // Skip if there is no replacement
+ if (!repl->replacement)
+ continue;
+
char* r = pakfire_string_replace(
buffer, repl->pattern, repl->replacement);
free(buffer);