version 1.16, 1999/12/16 17:27:18 |
version 1.17, 1999/12/18 02:11:27 |
|
|
#ifdef CLEANUP |
#ifdef CLEANUP |
Lst_Concat (suffClean, sufflist, LST_CONCLINK); |
Lst_Concat (suffClean, sufflist, LST_CONCLINK); |
#endif |
#endif |
sufflist = Lst_Init(FALSE); |
sufflist = Lst_Init(); |
sNum = 0; |
sNum = 0; |
suffNull = emptySuff; |
suffNull = emptySuff; |
} |
} |
|
|
gn = (GNode *) Lst_Datum (ln); |
gn = (GNode *) Lst_Datum (ln); |
Lst_Destroy (gn->commands, NOFREE); |
Lst_Destroy (gn->commands, NOFREE); |
Lst_Destroy (gn->children, NOFREE); |
Lst_Destroy (gn->children, NOFREE); |
gn->commands = Lst_Init (FALSE); |
gn->commands = Lst_Init(); |
gn->children = Lst_Init (FALSE); |
gn->children = Lst_Init(); |
} |
} |
|
|
gn->type = OP_TRANSFORM; |
gn->type = OP_TRANSFORM; |
|
|
|
|
s->name = estrdup (str); |
s->name = estrdup (str); |
s->nameLen = strlen (s->name); |
s->nameLen = strlen (s->name); |
s->searchPath = Lst_Init (FALSE); |
s->searchPath = Lst_Init(); |
s->children = Lst_Init (FALSE); |
s->children = Lst_Init(); |
s->parents = Lst_Init (FALSE); |
s->parents = Lst_Init(); |
s->ref = Lst_Init (FALSE); |
s->ref = Lst_Init(); |
s->sNum = sNum++; |
s->sNum = sNum++; |
s->flags = 0; |
s->flags = 0; |
s->refCount = 0; |
s->refCount = 0; |
|
|
return; |
return; |
} |
} |
|
|
inIncludes = Lst_Init(FALSE); |
inIncludes = Lst_Init(); |
inLibs = Lst_Init(FALSE); |
inLibs = Lst_Init(); |
|
|
while ((ln = Lst_Next (sufflist)) != NILLNODE) { |
while ((ln = Lst_Next (sufflist)) != NILLNODE) { |
s = (Suff *) Lst_Datum (ln); |
s = (Suff *) Lst_Datum (ln); |
|
|
targ->children += 1; |
targ->children += 1; |
(void)Lst_AtEnd (ls->l, (ClientData)s2); |
(void)Lst_AtEnd (ls->l, (ClientData)s2); |
#ifdef DEBUG_SRC |
#ifdef DEBUG_SRC |
s2->cp = Lst_Init(FALSE); |
s2->cp = Lst_Init(); |
Lst_AtEnd(targ->cp, (ClientData) s2); |
Lst_AtEnd(targ->cp, (ClientData) s2); |
printf("1 add %x %x to %x:", targ, s2, ls->l); |
printf("1 add %x %x to %x:", targ, s2, ls->l); |
Lst_ForEach(ls->l, PrintAddr, (ClientData) 0); |
Lst_ForEach(ls->l, PrintAddr, (ClientData) 0); |
|
|
targ->children += 1; |
targ->children += 1; |
(void)Lst_AtEnd (ls->l, (ClientData)s2); |
(void)Lst_AtEnd (ls->l, (ClientData)s2); |
#ifdef DEBUG_SRC |
#ifdef DEBUG_SRC |
s2->cp = Lst_Init(FALSE); |
s2->cp = Lst_Init(); |
Lst_AtEnd(targ->cp, (ClientData) s2); |
Lst_AtEnd(targ->cp, (ClientData) s2); |
printf("2 add %x %x to %x:", targ, s2, ls->l); |
printf("2 add %x %x to %x:", targ, s2, ls->l); |
Lst_ForEach(ls->l, PrintAddr, (ClientData) 0); |
Lst_ForEach(ls->l, PrintAddr, (ClientData) 0); |
|
|
ret->children = 0; |
ret->children = 0; |
targ->children += 1; |
targ->children += 1; |
#ifdef DEBUG_SRC |
#ifdef DEBUG_SRC |
ret->cp = Lst_Init(FALSE); |
ret->cp = Lst_Init(); |
printf("3 add %x %x\n", targ, ret); |
printf("3 add %x %x\n", targ, ret); |
Lst_AtEnd(targ->cp, (ClientData) ret); |
Lst_AtEnd(targ->cp, (ClientData) ret); |
#endif |
#endif |
|
|
cp = Var_Subst(cgn->name, pgn, TRUE); |
cp = Var_Subst(cgn->name, pgn, TRUE); |
|
|
if (cp != (char *)NULL) { |
if (cp != (char *)NULL) { |
Lst members = Lst_Init(FALSE); |
Lst members = Lst_Init(); |
|
|
if (cgn->type & OP_ARCHV) { |
if (cgn->type & OP_ARCHV) { |
/* |
/* |
|
|
/* |
/* |
* Expand the word along the chosen path |
* Expand the word along the chosen path |
*/ |
*/ |
exp = Lst_Init(FALSE); |
exp = Lst_Init(); |
Dir_Expand(cgn->name, path, exp); |
Dir_Expand(cgn->name, path, exp); |
|
|
while (!Lst_IsEmpty(exp)) { |
while (!Lst_IsEmpty(exp)) { |
|
|
* Begin at the beginning... |
* Begin at the beginning... |
*/ |
*/ |
ln = Lst_First(sufflist); |
ln = Lst_First(sufflist); |
srcs = Lst_Init(FALSE); |
srcs = Lst_Init(); |
targs = Lst_Init(FALSE); |
targs = Lst_Init(); |
|
|
/* |
/* |
* We're caught in a catch-22 here. On the one hand, we want to use any |
* We're caught in a catch-22 here. On the one hand, we want to use any |
|
|
targ->parent = (Src *)NULL; |
targ->parent = (Src *)NULL; |
targ->children = 0; |
targ->children = 0; |
#ifdef DEBUG_SRC |
#ifdef DEBUG_SRC |
targ->cp = Lst_Init(FALSE); |
targ->cp = Lst_Init(); |
#endif |
#endif |
|
|
/* |
/* |
|
|
targ->children = 0; |
targ->children = 0; |
targ->pref = estrdup(sopref); |
targ->pref = estrdup(sopref); |
#ifdef DEBUG_SRC |
#ifdef DEBUG_SRC |
targ->cp = Lst_Init(FALSE); |
targ->cp = Lst_Init(); |
#endif |
#endif |
|
|
/* |
/* |
|
|
void |
void |
Suff_Init () |
Suff_Init () |
{ |
{ |
sufflist = Lst_Init (FALSE); |
sufflist = Lst_Init(); |
#ifdef CLEANUP |
#ifdef CLEANUP |
suffClean = Lst_Init(FALSE); |
suffClean = Lst_Init(); |
#endif |
#endif |
srclist = Lst_Init (FALSE); |
srclist = Lst_Init(); |
transforms = Lst_Init (FALSE); |
transforms = Lst_Init(); |
|
|
sNum = 0; |
sNum = 0; |
/* |
/* |
|
|
|
|
suffNull->name = estrdup (""); |
suffNull->name = estrdup (""); |
suffNull->nameLen = 0; |
suffNull->nameLen = 0; |
suffNull->searchPath = Lst_Init (FALSE); |
suffNull->searchPath = Lst_Init(); |
Dir_Concat(suffNull->searchPath, dirSearchPath); |
Dir_Concat(suffNull->searchPath, dirSearchPath); |
suffNull->children = Lst_Init (FALSE); |
suffNull->children = Lst_Init(); |
suffNull->parents = Lst_Init (FALSE); |
suffNull->parents = Lst_Init(); |
suffNull->ref = Lst_Init (FALSE); |
suffNull->ref = Lst_Init(); |
suffNull->sNum = sNum++; |
suffNull->sNum = sNum++; |
suffNull->flags = SUFF_NULL; |
suffNull->flags = SUFF_NULL; |
suffNull->refCount = 1; |
suffNull->refCount = 1; |