add: WMFreeBag(bag);
context: separateCommand(char *line, char ***file, char **command){    char *token, *tmp = line;    LinkedList *list = NULL;    int count, i;    *file = NULL;    *command = NULL;    do {        token = next_token(tmp, &tmp);        if (token) {            if (strcmp(token, "WITH")==0) {                if (tmp!=NULL && *tmp!=0)                    *command = wstrdup(tmp);                else                    wwarning(_("%s: missing command"), line);                break;            }            list = list_cons(token, list);        }    } while (token!=NULL && tmp!=NULL);    count = list_length(list);    if (count>0) {        *file = wmalloc(sizeof(char*)*(count+1));        i = count;        (*file)[count] = NULL;        while (list!=NULL) {            (*file)[--i] = list->head;            list_remove_head(&list);        }    }}