#include #include 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; }