summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJaroslav Kysela <perex@perex.cz>2020-05-27 15:04:31 +0200
committerJaroslav Kysela <perex@perex.cz>2020-05-27 15:04:31 +0200
commit8d26f25ad3ed9e102ee467d39bd00b5e954b4461 (patch)
treedc740c488e5d64f07c4e945ca7a6f6972bce0ea1
parent8d90c4746b2800713a31d217fd447fa1d821fd80 (diff)
downloadalsa-lib-8d26f25ad3ed9e102ee467d39bd00b5e954b4461.tar.gz
ucm: substitute Comment in Transition and Device
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
-rw-r--r--src/ucm/parser.c16
1 files changed, 11 insertions, 5 deletions
diff --git a/src/ucm/parser.c b/src/ucm/parser.c
index a2a87ee4..567f6373 100644
--- a/src/ucm/parser.c
+++ b/src/ucm/parser.c
@@ -410,10 +410,16 @@ static int parse_transition(snd_use_case_mgr_t *uc_mgr,
return -ENOMEM;
INIT_LIST_HEAD(&tseq->transition_list);
- tseq->name = strdup(id);
- if (tseq->name == NULL) {
+ if (uc_mgr->conf_format < 3) {
+ tseq->name = strdup(id);
+ if (tseq->name == NULL)
+ err = -ENOMEM;
+ } else {
+ err = uc_mgr_get_substituted_value(uc_mgr, &tseq->name, id);
+ }
+ if (err < 0) {
free(tseq);
- return -ENOMEM;
+ return err;
}
err = parse_sequence(uc_mgr, &tseq->transition_list, n);
@@ -940,7 +946,7 @@ static int parse_modifier(snd_use_case_mgr_t *uc_mgr,
continue;
if (strcmp(id, "Comment") == 0) {
- err = parse_string(n, &modifier->comment);
+ err = parse_string_substitute3(uc_mgr, n, &modifier->comment);
if (err < 0) {
uc_error("error: failed to get modifier comment");
return err;
@@ -1085,7 +1091,7 @@ static int parse_device(snd_use_case_mgr_t *uc_mgr,
continue;
if (strcmp(id, "Comment") == 0) {
- err = parse_string(n, &device->comment);
+ err = parse_string_substitute3(uc_mgr, n, &device->comment);
if (err < 0) {
uc_error("error: failed to get device comment");
return err;