Lst_AtEnd(slst, (ClientData)ret);
Lst_AtEnd(slst, ret);
SuffFindCmds (targ, slst)    Src	    	*targ;	/* Src structure to play with */    Lst		slst;{    LstNode 	  	ln; 	/* General-purpose list node */    register GNode	*t, 	/* Target GNode */	    	  	*s; 	/* Source GNode */    int	    	  	prefLen;/* The length of the defined prefix */    Suff    	  	*suff;	/* Suffix on matching beastie */    Src	    	  	*ret;	/* Return value */    char    	  	*cp;    t = targ->node;    (void) Lst_Open (t->children);    prefLen = strlen (targ->pref);    while ((ln = Lst_Next (t->children)) != NULL) {	s = (GNode *)Lst_Datum (ln);	cp = strrchr (s->name, '/');	if (cp == (char *)NULL) {	    cp = s->name;	} else {	    cp++;	}	if (strncmp (cp, targ->pref, prefLen) == 0) {	    /*	     * The node matches the prefix ok, see if it has a known	     * suffix.	     */	    ln = Lst_Find(sufflist, SuffSuffHasNameP, 	    	(ClientData)&cp[prefLen]);	    if (ln != NULL) {		/*		 * It even has a known suffix, see if there's a transformation		 * defined between the node's suffix and the target's suffix.		 *		 * XXX: Handle multi-stage transformations here, too.		 */		suff = (Suff *)Lst_Datum (ln);		if (Lst_Member (suff->parents,				(ClientData)targ->suff) != NULL)		{		    /*		     * Hot Damn! Create a new Src structure to describe		     * this transformation (making sure to duplicate the		     * source node's name so Suff_FindDeps can free it		     * again (ick)), and return the new structure.		     */		    ret = (Src *)emalloc (sizeof (Src));		    ret->file = estrdup(s->name);		    ret->pref = targ->pref;		    ret->suff = suff;		    ret->parent = targ;		    ret->node = s;		    ret->children = 0;		    targ->children += 1;#ifdef DEBUG_SRC		    ret->cp = Lst_Init();		    printf("3 add %x %x\n", targ, ret);		    Lst_AtEnd(targ->cp, (ClientData)ret);#endif		    Lst_AtEnd(slst, (ClientData)ret);		    if (DEBUG(SUFF)) {			printf ("\tusing existing source %s\n", s->name);		    }		    return (ret);		}	    }	}    }    Lst_Close (t->children);    return ((Src *)NULL);}