Lst_Find(gn->commands, CompatRunCommand, gn);
Lst_Find(&gn->commands, CompatRunCommand, gn);
Compat_Run(targs)    Lst	    	  targs;    /* List of target nodes to re-create */{    char    	  *cp;	    /* Pointer to string of shell meta-characters */    GNode   	  *gn = NULL;/* Current root target */    int	    	  errors;   /* Number of targets not remade due to errors */    if (signal(SIGINT, SIG_IGN) != SIG_IGN) {	signal(SIGINT, CompatInterrupt);    }    if (signal(SIGTERM, SIG_IGN) != SIG_IGN) {	signal(SIGTERM, CompatInterrupt);    }    if (signal(SIGHUP, SIG_IGN) != SIG_IGN) {	signal(SIGHUP, CompatInterrupt);    }    if (signal(SIGQUIT, SIG_IGN) != SIG_IGN) {	signal(SIGQUIT, CompatInterrupt);    }    for (cp = "#=|^(){};&<>*?[]:$`\\\n"; *cp != '\0'; cp++) {	meta[(unsigned char) *cp] = 1;    }    /*     * The null character serves as a sentinel in the string.     */    meta[0] = 1;    ENDNode = Targ_FindNode(".END", TARG_CREATE);    /*     * If the user has defined a .BEGIN target, execute the commands attached     * to it.     */    if (!queryFlag) {	gn = Targ_FindNode(".BEGIN", TARG_NOCREATE);	if (gn != NULL) {	    Lst_Find(gn->commands, CompatRunCommand, gn);            if (gn->made == ERROR) {                printf("\n\nStop.\n");                exit(1);            }	}    }    /*     * For each entry in the list of targets to create, call CompatMake on     * it to create the thing. CompatMake will leave the 'made' field of gn     * in one of several states:     *	    UPTODATE	    gn was already up-to-date     *	    MADE  	    gn was recreated successfully     *	    ERROR 	    An error occurred while gn was being created     *	    ABORTED	    gn was not remade because one of its inferiors     *	    	  	    could not be made due to errors.     */    errors = 0;    while ((gn = (GNode *)Lst_DeQueue(targs)) != NULL) {	CompatMake(gn, gn);	if (gn->made == UPTODATE) {	    printf ("`%s' is up to date.\n", gn->name);	} else if (gn->made == ABORTED) {	    printf ("`%s' not remade because of errors.\n", gn->name);	    errors += 1;	}    }    /*     * If the user has defined a .END target, run its commands.     */    if (errors == 0) {	Lst_Find(ENDNode->commands, CompatRunCommand, gn);    }}