From: Michael Tremer Date: Fri, 16 Apr 2021 14:39:41 +0000 (+0000) Subject: config: Add function to check whether a section exists X-Git-Tag: 0.9.28~1285^2~347 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=77f7a353415fef36cd6ab4193da5271733dd915a;p=pakfire.git config: Add function to check whether a section exists Signed-off-by: Michael Tremer --- diff --git a/src/libpakfire/config.c b/src/libpakfire/config.c index 65aa5fb84..b64947ef5 100644 --- a/src/libpakfire/config.c +++ b/src/libpakfire/config.c @@ -244,6 +244,17 @@ char** pakfire_config_sections(struct pakfire_config* config) { return sections; } +int pakfire_config_has_section(struct pakfire_config* config, const char* section) { + struct pakfire_config_entry* entry; + + STAILQ_FOREACH(entry, &config->entries, nodes) { + if (strcmp(entry->section, section) == 0) + return 1; + } + + return 0; +} + static ssize_t strip(char* s) { if (!s) return 0; diff --git a/src/libpakfire/include/pakfire/config.h b/src/libpakfire/include/pakfire/config.h index 0dca2b6e2..f87fff122 100644 --- a/src/libpakfire/include/pakfire/config.h +++ b/src/libpakfire/include/pakfire/config.h @@ -41,6 +41,7 @@ int pakfire_config_get_bool(struct pakfire_config* config, const char* section, const char* key, int _default); char** pakfire_config_sections(struct pakfire_config* config); +int pakfire_config_has_section(struct pakfire_config* config, const char* section); int pakfire_config_read(struct pakfire_config* config, FILE* f); diff --git a/tests/libpakfire/config.c b/tests/libpakfire/config.c index 30757b4c7..903a090ba 100644 --- a/tests/libpakfire/config.c +++ b/tests/libpakfire/config.c @@ -59,6 +59,10 @@ static int test_get_and_set(const struct test* t) { // Return default instead of NULL ASSERT_STRING_EQUALS(pakfire_config_get(config, "section1", "D", "XXX"), "XXX"); + // Check if sections exist + ASSERT(pakfire_config_has_section(config, "section1")); + ASSERT(!pakfire_config_has_section(config, "section3")); + pakfire_config_free(config); return EXIT_SUCCESS;