arg->lst = Lst_Init(); build_words_list(arg->lst, sub);
Lst_Init(&arg->lst); build_words_list(&arg->lst, sub);
For_Eval(line)    char    	    *line;    /* Line to parse */{    char 	*ptr = line;    char	*wrd;    char 	*sub;    char	*endVar;    For 	*arg;    for (ptr++; *ptr && isspace(*ptr); ptr++)	continue;    /* If we are not in a for loop quickly determine if the statement is     * a for.  */    if (ptr[0] != 'f' || ptr[1] != 'o' || ptr[2] != 'r' ||	!isspace(ptr[3]))	return NULL;    ptr += 4;    while (*ptr && isspace(*ptr))	ptr++;    /* We found a for loop, and now we are going to parse it.  */    /* Grab the variable.  */    for (wrd = ptr; *ptr && !isspace(*ptr); ptr++)	continue;    if (ptr - wrd == 0) {	Parse_Error(PARSE_FATAL, "missing variable in for");	return 0;    }    endVar = ptr++;    while (*ptr && isspace(*ptr))	ptr++;    /* Grab the `in'.  */    if (ptr[0] != 'i' || ptr[1] != 'n' ||	!isspace(ptr[2])) {	Parse_Error(PARSE_FATAL, "missing `in' in for");	printf("%s\n", ptr);	return NULL;    }    ptr += 3;    /* .for loop is go, collate what we need.  */    arg = emalloc(sizeof(*arg));    arg->var = interval_dup(wrd, endVar);    /* Make a list with the remaining words.  */    sub = Var_Subst(ptr, VAR_GLOBAL, FALSE);    if (DEBUG(FOR))	(void)fprintf(stderr, "For: Iterator %s List %s\n", arg->var, sub);    arg->lst = Lst_Init();    build_words_list(arg->lst, sub);    free(sub);    arg->lineno = Parse_Getlineno();    arg->level = 1;    Buf_Init(&arg->buf, 0);    return arg;}