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;
|
char *ptr = (char *)*ptrp;
|
||||||
int items, i, len;
|
int items, i, len;
|
||||||
const char *name;
|
const char *name;
|
||||||
|
char end;
|
||||||
|
|
||||||
items = snd_ctl_elem_info_get_items(info);
|
items = snd_ctl_elem_info_get_items(info);
|
||||||
if (items <= 0)
|
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)
|
if (snd_ctl_elem_info(handle, info) < 0)
|
||||||
return -1;
|
return -1;
|
||||||
name = snd_ctl_elem_info_get_item_name(info);
|
name = snd_ctl_elem_info_get_item_name(info);
|
||||||
|
end = *ptr;
|
||||||
|
if (end == '\'' || end == '"')
|
||||||
|
ptr++;
|
||||||
|
else
|
||||||
|
end = '\0';
|
||||||
len = strlen(name);
|
len = strlen(name);
|
||||||
if (! strncmp(name, ptr, len)) {
|
if (strncmp(name, ptr, len) == 0) {
|
||||||
if (! ptr[len] || ptr[len] == ',' || ptr[len] == '\n') {
|
if (ptr[len] == end || ptr[len] == ',' || ptr[len] == '\n') {
|
||||||
ptr += len;
|
ptr += len;
|
||||||
*ptrp = ptr;
|
*ptrp = ptr;
|
||||||
return i;
|
return i;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue