]> git.alsa-project.org Git - alsa-utils.git/commitdiff
Fixed simple ID parser (when index is ommited)
authorJaroslav Kysela <perex@perex.cz>
Mon, 25 Jun 2001 09:16:27 +0000 (09:16 +0000)
committerJaroslav Kysela <perex@perex.cz>
Mon, 25 Jun 2001 09:16:27 +0000 (09:16 +0000)
amixer/amixer.c

index d05b369d22f1126055a046be4dbbb3f171d5aeb6..99d7231bf6829518bccf581d25a428d1704b5a47 100644 (file)
@@ -694,7 +694,7 @@ static int parse_simple_id(const char *str, snd_mixer_selem_id_t *sid)
                str++;
        if (!(*str))
                return -EINVAL;
-       size = 0;
+       size = 1;       /* for '\0' */
        if (*str != '"' && *str != '\'') {
                while (*str && *str != ',') {
                        if (size < sizeof(buf)) {
@@ -715,8 +715,11 @@ static int parse_simple_id(const char *str, snd_mixer_selem_id_t *sid)
                if (*str == c)
                        str++;
        }
-       if (*str == '\0')
-               return 0;
+       if (*str == '\0') {
+               snd_mixer_selem_id_set_index(sid, 0);
+               *ptr = 0;
+               goto _set;
+       }
        if (*str != ',')
                return -EINVAL;
        *ptr = 0;       /* terminate the string */
@@ -724,6 +727,7 @@ static int parse_simple_id(const char *str, snd_mixer_selem_id_t *sid)
        if (!isdigit(*str))
                return -EINVAL;
        snd_mixer_selem_id_set_index(sid, atoi(str));
+       _set:
        snd_mixer_selem_id_set_name(sid, buf);
        return 0;
 }