mirror of
https://github.com/alsa-project/alsa-lib.git
synced 2025-11-06 13:29:59 -05:00
control: ctlparse - accept enum values in '' or ""
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
This commit is contained in:
parent
659ecf6ff0
commit
aaf3a081bf
1 changed files with 8 additions and 2 deletions
|
|
@ -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;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue