ClientData	sp;	     ClientData  lsp;
void *sp;	     void *lsp;
SuffAddSrc(sp, lsp)    ClientData	sp;	    /* suffix for which to create a Src structure */    ClientData  lsp;	    /* list and parent for the new Src */{    Suff	*s = (Suff *)sp;    LstSrc      *ls = (LstSrc *)lsp;    Src         *s2;	    /* new Src structure */    Src    	*targ; 	    /* Target structure */    targ = ls->s;    if ((s->flags & SUFF_NULL) && (*s->name != '\0')) {	/*	 * If the suffix has been marked as the NULL suffix, also create a Src	 * structure for a file with no suffix attached. Two birds, and all	 * that...	 */	s2 = (Src *) emalloc (sizeof (Src));	s2->file =  	estrdup(targ->pref);	s2->pref =  	targ->pref;	s2->parent = 	targ;	s2->node =  	NULL;	s2->suff =  	s;	s2->children =	0;	targ->children += 1;	Lst_AtEnd(ls->l, s2);#ifdef DEBUG_SRC	s2->cp = Lst_Init();	Lst_AtEnd(targ->cp, s2);	printf("1 add %x %x to %x:", targ, s2, ls->l);	Lst_Every(ls->l, PrintAddr);	printf("\n");#endif    }    s2 = (Src *) emalloc (sizeof (Src));    s2->file = 	    str_concat (targ->pref, s->name, 0);    s2->pref =	    targ->pref;    s2->parent =    targ;    s2->node = 	    NULL;    s2->suff = 	    s;    s2->children =  0;    targ->children += 1;    Lst_AtEnd(ls->l, s2);#ifdef DEBUG_SRC    s2->cp = Lst_Init();    Lst_AtEnd(targ->cp, s2);    printf("2 add %x %x to %x:", targ, s2, ls->l);    Lst_Every(ls->l, PrintAddr);    printf("\n");#endif}