diff options
-rw-r--r-- | c_implementation/include/libaksettings.h | 1 | ||||
-rw-r--r-- | c_implementation/src/ak_settings.c | 2 | ||||
-rw-r--r-- | c_implementation/tests/test_aksettings.c | 17 |
3 files changed, 19 insertions, 1 deletions
diff --git a/c_implementation/include/libaksettings.h b/c_implementation/include/libaksettings.h index 13e6f6e..505e502 100644 --- a/c_implementation/include/libaksettings.h +++ b/c_implementation/include/libaksettings.h @@ -18,6 +18,7 @@ char *ak_settings_get_setting(const char*); bool ak_settings_set_setting(const char*, const char*); bool ak_settings_save_settings(); bool ak_settings_load_settings_binary(); +int ak_settings_find_setting(const char *key); void ak_settings_free_settings(); bool ak_settings_save_settings_binary(); void ak_settings_import_from_environment(); diff --git a/c_implementation/src/ak_settings.c b/c_implementation/src/ak_settings.c index 324eda2..af390cb 100644 --- a/c_implementation/src/ak_settings.c +++ b/c_implementation/src/ak_settings.c @@ -76,7 +76,7 @@ void ak_settings_free_settings() { settings_count = 0; } -static int ak_settings_find_setting(const char *key) { +int ak_settings_find_setting(const char *key) { for (int i = 0; i < settings_count; i++) { if (strcmp(settings[i].key, key) == 0) { return i; diff --git a/c_implementation/tests/test_aksettings.c b/c_implementation/tests/test_aksettings.c index 4e7a091..de9e8e3 100644 --- a/c_implementation/tests/test_aksettings.c +++ b/c_implementation/tests/test_aksettings.c @@ -95,11 +95,28 @@ static int test_read_and_dump() return 0; } +static int test_find() +{ + printf("Testing: %s\n", __func__); + if (!ak_settings_load_settings_binary()) + { + ak_log_warning(__func__, "No existing settings or error loading.\n"); + } + AKSetting* ak_settings; + ak_settings = ak_settings_get_all(); + int i = ak_settings_find_setting("volume"); + if ( i > -1 ) + printf("%s=%s\n", ak_settings[i].key, ak_settings[i].value); + ak_settings_free_settings(); + return 0; +} + int main() { test_import(); test_ak_settings(); test_ak_settings_read_example(); test_read_and_dump(); + test_find(); return 0; } |