if (Lst_Member(tGn->children, (ClientData)gn) == NULL) {
if (Lst_Member(tGn->children, gn) == NULL) {
SuffApplyTransform(tGn, sGn, t, s)    GNode   	*tGn;	    /* Target node */    GNode   	*sGn;	    /* Source node */    Suff    	*t; 	    /* Target suffix */    Suff    	*s; 	    /* Source suffix */{    LstNode 	ln; 	    /* General node */    char    	*tname;	    /* Name of transformation rule */    GNode   	*gn;	    /* Node for same */    if (Lst_Member(tGn->children, (ClientData)sGn) == NULL) {	/*	 * Not already linked, so form the proper links between the	 * target and source.	 */	Lst_AtEnd(tGn->children, (ClientData)sGn);	Lst_AtEnd(sGn->parents, (ClientData)tGn);	tGn->unmade += 1;    }    if ((sGn->type & OP_OPMASK) == OP_DOUBLEDEP) {	/*	 * When a :: node is used as the implied source of a node, we have	 * to link all its cohorts in as sources as well. Only the initial	 * sGn gets the target in its iParents list, however, as that	 * will be sufficient to get the .IMPSRC variable set for tGn	 */	for (ln=Lst_First(sGn->cohorts); ln != NULL; ln=Lst_Succ(ln)) {	    gn = (GNode *)Lst_Datum(ln);	    if (Lst_Member(tGn->children, (ClientData)gn) == NULL) {		/*		 * Not already linked, so form the proper links between the		 * target and source.		 */		Lst_AtEnd(tGn->children, (ClientData)gn);		Lst_AtEnd(gn->parents, (ClientData)tGn);		tGn->unmade += 1;	    }	}    }    /*     * Locate the transformation rule itself     */    tname = str_concat(s->name, t->name, 0);    ln = Lst_Find(transforms, SuffGNHasNameP, (ClientData)tname);    free(tname);    if (ln == NULL) {	/*	 * Not really such a transformation rule (can happen when we're	 * called to link an OP_MEMBER and OP_ARCHV node), so return	 * FALSE.	 */	return(FALSE);    }    gn = (GNode *)Lst_Datum(ln);    if (DEBUG(SUFF)) {	printf("\tapplying %s -> %s to \"%s\"\n", s->name, t->name, tGn->name);    }    /*     * Record last child for expansion purposes     */    ln = Lst_Last(tGn->children);    /*     * Pass the buck to Make_HandleUse to apply the rule     */    (void)Make_HandleUse(gn, tGn);    /*     * Deal with wildcards and variables in any acquired sources     */    ln = Lst_Succ(ln);    if (ln != NULL) {	Lst_ForEachFrom(tGn->children, ln,			SuffExpandChildren, (ClientData)tGn);    }    /*     * Keep track of another parent to which this beast is transformed so     * the .IMPSRC variable can be set correctly for the parent.     */    Lst_AtEnd(sGn->iParents, (ClientData)tGn);    return(TRUE);}