diff options
author | Jaroslav Kysela <perex@perex.cz> | 2019-11-27 14:59:17 +0100 |
---|---|---|
committer | Jaroslav Kysela <perex@perex.cz> | 2019-11-28 15:02:04 +0100 |
commit | aaf3a081bff1cc85635f7a3c3d4287c4addbbd84 (patch) | |
tree | e0dcd85358e278ec33e31403c503d354d2189325 | |
parent | 659ecf6ff01fe4e8a0118d0ea69135b1cadf62d9 (diff) | |
download | alsa-lib-aaf3a081bff1cc85635f7a3c3d4287c4addbbd84.tar.gz |
control: ctlparse - accept enum values in '' or ""
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
-rw-r--r-- | src/control/ctlparse.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/control/ctlparse.c b/src/control/ctlparse.c index 900af0c7..b0bb5ee3 100644 --- a/src/control/ctlparse.c +++ b/src/control/ctlparse.c @@ -273,6 +273,7 @@ static int get_ctl_enum_item_index(snd_ctl_t *handle, char *ptr = (char *)*ptrp; int items, i, len; const char *name; + char end; items = snd_ctl_elem_info_get_items(info); if (items <= 0) @@ -283,9 +284,14 @@ static int get_ctl_enum_item_index(snd_ctl_t *handle, if (snd_ctl_elem_info(handle, info) < 0) return -1; name = snd_ctl_elem_info_get_item_name(info); + end = *ptr; + if (end == '\'' || end == '"') + ptr++; + else + end = '\0'; len = strlen(name); - if (! strncmp(name, ptr, len)) { - if (! ptr[len] || ptr[len] == ',' || ptr[len] == '\n') { + if (strncmp(name, ptr, len) == 0) { + if (ptr[len] == end || ptr[len] == ',' || ptr[len] == '\n') { ptr += len; *ptrp = ptr; return i; |