From: Jaroslav Kysela Date: Tue, 26 May 2020 13:32:36 +0000 (+0200) Subject: ucm: String condition - implement Empty X-Git-Tag: v1.2.3~38 X-Git-Url: https://git.alsa-project.org/?a=commitdiff_plain;h=a53a104f79f76b3f7c74f951d371508b938f01be;p=alsa-lib.git ucm: String condition - implement Empty Signed-off-by: Jaroslav Kysela --- diff --git a/src/ucm/ucm_cond.c b/src/ucm/ucm_cond.c index f0baa06a..63ee2ba0 100644 --- a/src/ucm/ucm_cond.c +++ b/src/ucm/ucm_cond.c @@ -44,6 +44,23 @@ static int if_eval_string(snd_use_case_mgr_t *uc_mgr, snd_config_t *eval) char *s1, *s2; int err; + if (uc_mgr->conf_format >= 3) { + err = get_string(eval, "Empty", &string1); + if (err < 0 && err != -ENOENT) { + uc_error("String error (If.Condition.Empty)"); + return -EINVAL; + } + + if (string1) { + err = uc_mgr_get_substituted_value(uc_mgr, &s1, string1); + if (err < 0) + return err; + err = s1 == NULL || s1[0] == '\0'; + free(s1); + return err; + } + } + err = get_string(eval, "String1", &string1); if (err < 0 && err != -ENOENT) { uc_error("String error (If.Condition.String1)");