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