#include <stdlib.h>#include <string.h>int getsubopt(char **opt, char *const *keys, char **val){char *s = *opt;int i;*val = NULL;*opt = strchr(s, ',');if (*opt) *(*opt)++ = 0;else *opt = s + strlen(s);for (i=0; keys[i]; i++) {size_t l = strlen(keys[i]);if (strncmp(keys[i], s, l)) continue;if (s[l] == '=')*val = s + l + 1;else if (s[l]) continue;return i;}return -1;}