24 lines
412 B
C
24 lines
412 B
C
|
#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;
|
||
|
}
|