static Suff *SuffRemove __P((Lst, Suff *));
static void SuffRemove __P((Lst, Suff *));
static char *SuffStrIsPrefix __P((char *, char *));static char *SuffSuffIsSuffix __P((Suff *, char *));static int SuffSuffIsSuffixP __P((ClientData, ClientData));static int SuffSuffHasNameP __P((ClientData, ClientData));static int SuffSuffIsPrefix __P((ClientData, ClientData));static int SuffGNHasNameP __P((ClientData, ClientData));static void SuffUnRef __P((ClientData, ClientData));static void SuffFree __P((ClientData));static void SuffInsert __P((Lst, Suff *));static Suff *SuffRemove __P((Lst, Suff *));static Boolean SuffParseTransform __P((char *, Suff **, Suff **));static int SuffRebuildGraph __P((ClientData, ClientData));static int SuffAddSrc __P((ClientData, ClientData));static int SuffRemoveSrc __P((Lst));static void SuffAddLevel __P((Lst, Src *));static Src *SuffFindThem __P((Lst, Lst));static Src *SuffFindCmds __P((Src *, Lst));static int SuffExpandChildren __P((ClientData, ClientData));static Boolean SuffApplyTransform __P((GNode *, GNode *, Suff *, Suff *));static void SuffFindDeps __P((GNode *, Lst));static void SuffFindArchiveDeps __P((GNode *, Lst));static void SuffFindNormalDeps __P((GNode *, Lst));static int SuffPrintName __P((ClientData, ClientData));static int SuffPrintSuff __P((ClientData, ClientData));static int SuffPrintTrans __P((ClientData, ClientData));	/*************** Lst Predicates ****************//*- *----------------------------------------------------------------------- * SuffStrIsPrefix  -- *	See if pref is a prefix of str. * * Results: *	NULL if it ain't, pointer to character in str after prefix if so * * Side Effects: *	None *----------------------------------------------------------------------- */static char    *SuffStrIsPrefix (pref, str)    register char  *pref;	/* possible prefix */    register char  *str;	/* string to check */{    while (*str && *pref == *str) {	pref++;	str++;    }    return (*pref ? NULL : str);}