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