-static void free_list(char **list)
-{
- char **s;
-
- for (s = list; *s; s++)
- {
- free(*s);
- }
- free(list);
-}
-
-char** new_list(char *value)
-{
- char *val, *b, *e, *end, **ret;
- int count;
-
- val = strdupnull(value);
- if (!val)
- {
- return NULL;
- }
- end = val + strlen(val);
- for (b = val, count = 0; b < end;)
- {
- for (e = b; ((*e != ' ') && (*e != '\0')); e++);
- *e = '\0';
- if (e != b)
- {
- count++;
- }
- b = e + 1;
- }
- if (count == 0)
- {
- free(val);
- return NULL;
- }
- ret = (char **)malloc((count+1) * sizeof(char *));
-
- for (b = val, count = 0; b < end; )
- {
- for (e = b; (*e != '\0'); e++);
- if (e != b)
- {
- ret[count++] = strdupnull(b);
- }
- b = e + 1;
- }
- ret[count] = NULL;
- free(val);
- return ret;
-}
-
-