rework langinfo code for ABI compat and for use by time code
[musl] / src / misc / getsubopt.c
1 #include <stdlib.h>
2 #include <string.h>
3
4 int getsubopt(char **opt, char *const *keys, char **val)
5 {
6         char *s = *opt;
7         int i;
8
9         *val = NULL;
10         *opt = strchr(s, ',');
11         if (*opt) *(*opt)++ = 0;
12         else *opt = s + strlen(s);
13
14         for (i=0; keys[i]; i++) {
15                 size_t l = strlen(keys[i]);
16                 if (strncmp(keys[i], s, l)) continue;
17                 if (s[l] == '=')
18                         *val = s + l;
19                 else if (s[l]) continue;
20                 return i;
21         }
22         return -1;
23 }