1 #include <stdlib.h> 2 #include <string.h> 3 4 int getsubopt(char **opt, char *const *keys, char **val) 5 { 6 char *s = *opt; 7 int i; 8 9 *val = NULL; 10 *opt = strchr(s, ','); 11 if (*opt) *(*opt)++ = 0; 12 else *opt = s + strlen(s); 13 14 for (i=0; keys[i]; i++) { 15 size_t l = strlen(keys[i]); 16 if (strncmp(keys[i], s, l)) continue; 17 if (s[l] == '=') 18 *val = s + l + 1; 19 else if (s[l]) continue; 20 return i; 21 } 22 return -1; 23 } 24