From: Abramo Bagnara Date: Fri, 15 Jun 2001 11:49:19 +0000 (+0000) Subject: Simplified and fixed semantic X-Git-Tag: v1.0.3~806 X-Git-Url: https://git.alsa-project.org/?a=commitdiff_plain;h=cf325c68e3bc4ad0acd8fbbc30d0b91462829c4d;p=alsa-lib.git Simplified and fixed semantic --- diff --git a/src/conf.c b/src/conf.c index 60d73062..17244a86 100644 --- a/src/conf.c +++ b/src/conf.c @@ -1451,25 +1451,21 @@ int snd_config_search_alias(snd_config_t *config, const char *base, const char *key, snd_config_t **result) { - snd_config_t *res; + snd_config_t *res = NULL; int err; assert(config && key); - if (base) { - err = snd_config_searchv(config, &res, base, key, NULL); - } else { + do { err = snd_config_search(config, key, &res); - } - if (err < 0) - return err; - while (snd_config_get_string(res, &base) >= 0) { - err = snd_config_search(config, base, &res); - if (err >= 0) { - if (snd_config_get_string(res, &key) >= 0) - err = snd_config_search(res, key, &res); + if (err < 0) { + if (!base) + break; + err = snd_config_searchv(config, &res, base, key, NULL); + if (err < 0) + break; } - if (err < 0) - break; - } + } while (snd_config_get_string(res, &key) >= 0); + if (!res) + return err; if (result) *result = res; return 0;