summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--usr.bin/make/arch.c39
-rw-r--r--usr.bin/make/compat.c24
-rw-r--r--usr.bin/make/cond.c8
-rw-r--r--usr.bin/make/dir.c57
-rw-r--r--usr.bin/make/for.c14
-rw-r--r--usr.bin/make/job.c93
-rw-r--r--usr.bin/make/job.h6
-rw-r--r--usr.bin/make/lst.h12
-rw-r--r--usr.bin/make/lst.lib/lstDestroy.c22
-rw-r--r--usr.bin/make/lst.lib/lstDupl.c13
-rw-r--r--usr.bin/make/lst.lib/lstInit.c36
-rw-r--r--usr.bin/make/main.c72
-rw-r--r--usr.bin/make/make.c72
-rw-r--r--usr.bin/make/make.h24
-rw-r--r--usr.bin/make/parse.c190
-rw-r--r--usr.bin/make/suff.c279
-rw-r--r--usr.bin/make/targ.c85
-rw-r--r--usr.bin/make/var.c41
18 files changed, 536 insertions, 551 deletions
diff --git a/usr.bin/make/arch.c b/usr.bin/make/arch.c
index fdea6a5b913..dac5f708781 100644
--- a/usr.bin/make/arch.c
+++ b/usr.bin/make/arch.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: arch.c,v 1.27 2000/06/10 01:41:05 espie Exp $ */
+/* $OpenBSD: arch.c,v 1.28 2000/06/17 14:38:13 espie Exp $ */
/* $NetBSD: arch.c,v 1.17 1996/11/06 17:58:59 christos Exp $ */
/*
@@ -43,7 +43,7 @@
#if 0
static char sccsid[] = "@(#)arch.c 8.2 (Berkeley) 1/2/94";
#else
-static char rcsid[] = "$OpenBSD: arch.c,v 1.27 2000/06/10 01:41:05 espie Exp $";
+static char rcsid[] = "$OpenBSD: arch.c,v 1.28 2000/06/17 14:38:13 espie Exp $";
#endif
#endif /* not lint */
@@ -119,7 +119,7 @@ static char rcsid[] = "$OpenBSD: arch.c,v 1.27 2000/06/10 01:41:05 espie Exp $";
#define MACHINE_ARCH TARGET_MACHINE_ARCH
#endif
-static Lst archives; /* Lst of archives we've already examined */
+static LIST archives; /* Lst of archives we've already examined */
typedef struct Arch {
char *name; /* Name of archive */
@@ -359,18 +359,19 @@ Arch_ParseArchive (linePtr, nodeLst, ctxt)
*/
free(buf);
} else if (Dir_HasWildcards(memName)) {
- Lst members = Lst_Init();
+ LIST members;
char *member;
- Dir_Expand(memName, dirSearchPath, members);
- while ((member = (char *)Lst_DeQueue(members)) != NULL) {
+ Lst_Init(&members);
+ Dir_Expand(memName, &dirSearchPath, &members);
+ while ((member = (char *)Lst_DeQueue(&members)) != NULL) {
sprintf(nameBuf, "%s(%s)", libName, member);
free(member);
- gn = Targ_FindNode (nameBuf, TARG_CREATE);
- if (gn == NULL) {
+ gn = Targ_FindNode(nameBuf, TARG_CREATE);
+ if (gn == NULL)
return (FAILURE);
- } else {
+ else {
/*
* We've found the node, but have to make sure the rest of
* the world knows it's an archive member, without having
@@ -382,7 +383,7 @@ Arch_ParseArchive (linePtr, nodeLst, ctxt)
Lst_AtEnd(nodeLst, gn);
}
}
- Lst_Destroy(members, NOFREE);
+ Lst_Destroy(&members, NOFREE);
} else {
sprintf(nameBuf, "%s(%s)", libName, memName);
gn = Targ_FindNode (nameBuf, TARG_CREATE);
@@ -496,7 +497,7 @@ ArchStatMember (archive, member, hash)
if (cp != NULL)
member = cp + 1;
- ln = Lst_Find(archives, ArchFindArchive, archive);
+ ln = Lst_Find(&archives, ArchFindArchive, archive);
if (ln != NULL) {
ar = (Arch *) Lst_Datum (ln);
@@ -643,7 +644,7 @@ ArchStatMember (archive, member, hash)
fclose (arch);
- Lst_AtEnd(archives, ar);
+ Lst_AtEnd(&archives, ar);
/*
* Now that the archive has been read and cached, we can look into
@@ -1044,11 +1045,11 @@ Arch_MemMTime (gn)
char *nameStart,
*nameEnd;
- if (Lst_Open (gn->parents) != SUCCESS) {
+ if (Lst_Open(&gn->parents) != SUCCESS) {
gn->mtime = OUT_OF_DATE;
return FALSE;
}
- while ((ln = Lst_Next (gn->parents)) != NULL) {
+ while ((ln = Lst_Next(&gn->parents)) != NULL) {
pgn = (GNode *) Lst_Datum (ln);
if (pgn->type & OP_ARCHV) {
@@ -1083,7 +1084,7 @@ Arch_MemMTime (gn)
}
}
- Lst_Close (gn->parents);
+ Lst_Close(&gn->parents);
return gn->mtime == OUT_OF_DATE;
}
@@ -1171,7 +1172,7 @@ Arch_LibOODate (gn)
{
Boolean oodate;
- if (OP_NOP(gn->type) && Lst_IsEmpty(gn->children)) {
+ if (OP_NOP(gn->type) && Lst_IsEmpty(&gn->children)) {
oodate = FALSE;
} else if (gn->mtime > now || gn->mtime < gn->cmtime ||
gn->mtime == OUT_OF_DATE) {
@@ -1220,9 +1221,9 @@ Arch_LibOODate (gn)
*-----------------------------------------------------------------------
*/
void
-Arch_Init ()
+Arch_Init()
{
- archives = Lst_Init();
+ Lst_Init(&archives);
}
@@ -1244,7 +1245,7 @@ void
Arch_End ()
{
#ifdef CLEANUP
- Lst_Destroy(archives, ArchFree);
+ Lst_Destroy(&archives, ArchFree);
#endif
}
diff --git a/usr.bin/make/compat.c b/usr.bin/make/compat.c
index 73745dc2024..279de0b99ff 100644
--- a/usr.bin/make/compat.c
+++ b/usr.bin/make/compat.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: compat.c,v 1.27 2000/06/10 01:41:05 espie Exp $ */
+/* $OpenBSD: compat.c,v 1.28 2000/06/17 14:38:14 espie Exp $ */
/* $NetBSD: compat.c,v 1.14 1996/11/06 17:59:01 christos Exp $ */
/*
@@ -43,7 +43,7 @@
#if 0
static char sccsid[] = "@(#)compat.c 8.2 (Berkeley) 3/19/94";
#else
-static char rcsid[] = "$OpenBSD: compat.c,v 1.27 2000/06/10 01:41:05 espie Exp $";
+static char rcsid[] = "$OpenBSD: compat.c,v 1.28 2000/06/17 14:38:14 espie Exp $";
#endif
#endif /* not lint */
@@ -122,7 +122,7 @@ CompatInterrupt (signo)
if (signo == SIGINT) {
gn = Targ_FindNode(".INTERRUPT", TARG_NOCREATE);
if (gn != NULL) {
- Lst_Find(gn->commands, CompatRunCommand, gn);
+ Lst_Find(&gn->commands, CompatRunCommand, gn);
}
}
@@ -232,7 +232,7 @@ CompatRunCommand (cmdp, gnp)
silent = gn->type & OP_SILENT;
errCheck = !(gn->type & OP_IGNORE);
- cmdNode = Lst_Member(gn->commands, cmd);
+ cmdNode = Lst_Member(&gn->commands, cmd);
cmdStart = Var_Subst(cmd, gn, FALSE);
/*
@@ -252,7 +252,7 @@ CompatRunCommand (cmdp, gnp)
Lst_Replace(cmdNode, cmdStart);
if ((gn->type & OP_SAVE_CMDS) && (gn != ENDNode)) {
- Lst_AtEnd(ENDNode->commands, cmdStart);
+ Lst_AtEnd(&ENDNode->commands, cmdStart);
return 1;
} else if (strcmp(cmdStart, "...") == 0) {
gn->type |= OP_SAVE_CMDS;
@@ -455,14 +455,14 @@ CompatMake(gnp, pgnp)
gn->make = TRUE;
gn->made = BEINGMADE;
Suff_FindDeps (gn);
- Lst_ForEach(gn->children, CompatMake, gn);
+ Lst_ForEach(&gn->children, CompatMake, gn);
if (!gn->make) {
gn->made = ABORTED;
pgn->make = FALSE;
return;
}
- if (Lst_Member (gn->iParents, pgn) != NULL) {
+ if (Lst_Member(&gn->iParents, pgn) != NULL) {
Var_Set(IMPSRC, Var_Value(TARGET, gn), pgn);
}
@@ -518,7 +518,7 @@ CompatMake(gnp, pgnp)
*/
if (!touchFlag) {
curTarg = gn;
- Lst_Find(gn->commands, CompatRunCommand, gn);
+ Lst_Find(&gn->commands, CompatRunCommand, gn);
curTarg = NULL;
} else {
Job_Touch (gn, gn->type & OP_SILENT);
@@ -562,7 +562,7 @@ CompatMake(gnp, pgnp)
* To force things that depend on FRC to be made, so we have to
* check for gn->children being empty as well...
*/
- if (!Lst_IsEmpty(gn->commands) || Lst_IsEmpty(gn->children)) {
+ if (!Lst_IsEmpty(&gn->commands) || Lst_IsEmpty(&gn->children)) {
gn->mtime = now;
}
#else
@@ -616,7 +616,7 @@ CompatMake(gnp, pgnp)
*/
pgn->make = FALSE;
} else {
- if (Lst_Member (gn->iParents, pgn) != NULL)
+ if (Lst_Member(&gn->iParents, pgn) != NULL)
Var_Set (IMPSRC, Var_Value(TARGET, gn), pgn);
switch(gn->made) {
case BEINGMADE:
@@ -691,7 +691,7 @@ Compat_Run(targs)
if (!queryFlag) {
gn = Targ_FindNode(".BEGIN", TARG_NOCREATE);
if (gn != NULL) {
- Lst_Find(gn->commands, CompatRunCommand, gn);
+ Lst_Find(&gn->commands, CompatRunCommand, gn);
if (gn->made == ERROR) {
printf("\n\nStop.\n");
exit(1);
@@ -725,6 +725,6 @@ Compat_Run(targs)
* If the user has defined a .END target, run its commands.
*/
if (errors == 0) {
- Lst_Find(ENDNode->commands, CompatRunCommand, gn);
+ Lst_Find(&ENDNode->commands, CompatRunCommand, gn);
}
}
diff --git a/usr.bin/make/cond.c b/usr.bin/make/cond.c
index 082a57a1c70..94c789ebb91 100644
--- a/usr.bin/make/cond.c
+++ b/usr.bin/make/cond.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: cond.c,v 1.17 2000/06/10 01:41:05 espie Exp $ */
+/* $OpenBSD: cond.c,v 1.18 2000/06/17 14:38:14 espie Exp $ */
/* $NetBSD: cond.c,v 1.7 1996/11/06 17:59:02 christos Exp $ */
/*
@@ -43,7 +43,7 @@
#if 0
static char sccsid[] = "@(#)cond.c 8.2 (Berkeley) 1/2/94";
#else
-static char rcsid[] = "$OpenBSD: cond.c,v 1.17 2000/06/10 01:41:05 espie Exp $";
+static char rcsid[] = "$OpenBSD: cond.c,v 1.18 2000/06/17 14:38:14 espie Exp $";
#endif
#endif /* not lint */
@@ -339,7 +339,7 @@ CondDoMake (argLen, arg)
Boolean result;
arg[argLen] = '\0';
- if (Lst_Find(create, CondStrMatch, arg) == NULL) {
+ if (Lst_Find(&create, CondStrMatch, arg) == NULL) {
result = FALSE;
} else {
result = TRUE;
@@ -371,7 +371,7 @@ CondDoExists (argLen, arg)
char *path;
arg[argLen] = '\0';
- path = Dir_FindFile(arg, dirSearchPath);
+ path = Dir_FindFile(arg, &dirSearchPath);
if (path != (char *)NULL) {
result = TRUE;
free(path);
diff --git a/usr.bin/make/dir.c b/usr.bin/make/dir.c
index ee7dd6f1a31..a401fe4a5ad 100644
--- a/usr.bin/make/dir.c
+++ b/usr.bin/make/dir.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: dir.c,v 1.19 2000/06/10 01:41:05 espie Exp $ */
+/* $OpenBSD: dir.c,v 1.20 2000/06/17 14:38:14 espie Exp $ */
/* $NetBSD: dir.c,v 1.14 1997/03/29 16:51:26 christos Exp $ */
/*
@@ -43,7 +43,7 @@
#if 0
static char sccsid[] = "@(#)dir.c 8.2 (Berkeley) 1/2/94";
#else
-static char rcsid[] = "$OpenBSD: dir.c,v 1.19 2000/06/10 01:41:05 espie Exp $";
+static char rcsid[] = "$OpenBSD: dir.c,v 1.20 2000/06/17 14:38:14 espie Exp $";
#endif
#endif /* not lint */
@@ -168,9 +168,9 @@ static char rcsid[] = "$OpenBSD: dir.c,v 1.19 2000/06/10 01:41:05 espie Exp $";
* in a cache for when Dir_MTime was actually called.
*/
-Lst dirSearchPath; /* main search path */
+LIST dirSearchPath; /* main search path */
-static Lst openDirectories; /* the list of all open directories */
+static LIST openDirectories; /* the list of all open directories */
/*
* Variables for gathering statistics on the efficiency of the hashing
@@ -213,10 +213,10 @@ static void DirPrintDir __P((void *));
*-----------------------------------------------------------------------
*/
void
-Dir_Init ()
+Dir_Init()
{
- dirSearchPath = Lst_Init();
- openDirectories = Lst_Init();
+ Lst_Init(&dirSearchPath);
+ Lst_Init(&openDirectories);
Hash_InitTable(&mtimes, 0);
/*
@@ -225,8 +225,8 @@ Dir_Init ()
* we need to remove "." from openDirectories and what better time to
* do it than when we have to fetch the thing anyway?
*/
- Dir_AddDir (openDirectories, ".");
- dot = (Path *) Lst_DeQueue (openDirectories);
+ Dir_AddDir(&openDirectories, ".");
+ dot = (Path *)Lst_DeQueue(&openDirectories);
/*
* We always need to have dot around, so we increment its reference count
@@ -253,10 +253,10 @@ Dir_End()
#ifdef CLEANUP
dot->refCount -= 1;
Dir_Destroy(dot);
- Dir_ClearPath(dirSearchPath);
- Lst_Destroy(dirSearchPath, NOFREE);
- Dir_ClearPath(openDirectories);
- Lst_Destroy(openDirectories, NOFREE);
+ Dir_ClearPath(&dirSearchPath);
+ Lst_Destroy(&dirSearchPath, NOFREE);
+ Dir_ClearPath(&openDirectories);
+ Lst_Destroy(&openDirectories, NOFREE);
Hash_DeleteTable(&mtimes);
#endif
}
@@ -623,10 +623,10 @@ Dir_Expand (word, path, expansions)
char *dp = &dirpath[strlen(dirpath) - 1];
if (*dp == '/')
*dp = '\0';
- path = Lst_Init();
+ path = Lst_New();
Dir_AddDir(path, dirpath);
DirExpandInt(cp+1, path, expansions);
- Lst_Destroy(path, NOFREE);
+ Lst_Delete(path, NOFREE);
}
} else {
/*
@@ -978,7 +978,7 @@ Dir_FindFile (name, path)
*-----------------------------------------------------------------------
*/
Boolean
-Dir_MTime (gn)
+Dir_MTime(gn)
GNode *gn; /* the file whose modification time is
* desired */
{
@@ -987,13 +987,12 @@ Dir_MTime (gn)
Hash_Entry *entry;
Boolean exists;
- if (gn->type & OP_ARCHV) {
- return Arch_MTime (gn);
- } else if (gn->path == (char *)NULL) {
- fullName = Dir_FindFile (gn->name, dirSearchPath);
- } else {
+ if (gn->type & OP_ARCHV)
+ return Arch_MTime(gn);
+ else if (gn->path == NULL)
+ fullName = Dir_FindFile(gn->name, &dirSearchPath);
+ else
fullName = gn->path;
- }
if (fullName == (char *)NULL) {
fullName = estrdup(gn->name);
@@ -1063,7 +1062,7 @@ Dir_AddDir (path, name)
DIR *d; /* for reading directory */
register struct dirent *dp; /* entry in directory */
- ln = Lst_Find(openDirectories, DirFindName, name);
+ ln = Lst_Find(&openDirectories, DirFindName, name);
if (ln != NULL) {
p = (Path *)Lst_Datum (ln);
if (Lst_Member(path, p) == NULL) {
@@ -1103,7 +1102,7 @@ Dir_AddDir (path, name)
(void)Hash_CreateEntry(&p->files, dp->d_name, (Boolean *)NULL);
}
(void) closedir (d);
- Lst_AtEnd(openDirectories, p);
+ Lst_AtEnd(&openDirectories, p);
Lst_AtEnd(path, p);
}
if (DEBUG(DIR)) {
@@ -1201,8 +1200,8 @@ Dir_Destroy (pp)
if (p->refCount == 0) {
LstNode ln;
- ln = Lst_Member(openDirectories, p);
- Lst_Remove(openDirectories, ln);
+ ln = Lst_Member(&openDirectories, p);
+ Lst_Remove(&openDirectories, ln);
Hash_DeleteTable (&p->files);
free(p->name);
@@ -1278,12 +1277,12 @@ Dir_PrintDirectories()
(hits+bigmisses+nearmisses ?
hits * 100 / (hits + bigmisses + nearmisses) : 0));
printf ("# %-20s referenced\thits\n", "directory");
- if (Lst_Open (openDirectories) == SUCCESS) {
- while ((ln = Lst_Next (openDirectories)) != NULL) {
+ if (Lst_Open(&openDirectories) == SUCCESS) {
+ while ((ln = Lst_Next(&openDirectories)) != NULL) {
p = (Path *) Lst_Datum (ln);
printf ("# %-20s %10d\t%4d\n", p->name, p->refCount, p->hits);
}
- Lst_Close (openDirectories);
+ Lst_Close(&openDirectories);
}
}
diff --git a/usr.bin/make/for.c b/usr.bin/make/for.c
index 846ac63553e..98cc8e74bd0 100644
--- a/usr.bin/make/for.c
+++ b/usr.bin/make/for.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: for.c,v 1.17 2000/06/10 01:41:05 espie Exp $ */
+/* $OpenBSD: for.c,v 1.18 2000/06/17 14:38:15 espie Exp $ */
/* $NetBSD: for.c,v 1.4 1996/11/06 17:59:05 christos Exp $ */
/*
@@ -82,7 +82,7 @@
#if 0
static char sccsid[] = "@(#)for.c 8.1 (Berkeley) 6/6/93";
#else
-static char rcsid[] = "$OpenBSD: for.c,v 1.17 2000/06/10 01:41:05 espie Exp $";
+static char rcsid[] = "$OpenBSD: for.c,v 1.18 2000/06/17 14:38:15 espie Exp $";
#endif
#endif /* not lint */
@@ -104,7 +104,7 @@ static char rcsid[] = "$OpenBSD: for.c,v 1.17 2000/06/10 01:41:05 espie Exp $";
struct For_ {
char *text; /* unexpanded text */
char *var; /* Index name */
- Lst lst; /* List of items */
+ LIST lst; /* List of items */
size_t guess; /* Estimated expansion size */
BUFFER buf; /* Accumulating text */
unsigned long lineno; /* Line number at start of loop */
@@ -202,8 +202,8 @@ For_Eval(line)
if (DEBUG(FOR))
(void)fprintf(stderr, "For: Iterator %s List %s\n", arg->var, sub);
- arg->lst = Lst_Init();
- build_words_list(arg->lst, sub);
+ Lst_Init(&arg->lst);
+ build_words_list(&arg->lst, sub);
free(sub);
arg->lineno = Parse_Getlineno();
arg->level = 1;
@@ -303,9 +303,9 @@ For_Run(arg)
arg->text = Buf_Retrieve(&arg->buf);
arg->guess = Buf_Size(&arg->buf) + GUESS_EXPANSION;
- Lst_ForEach(arg->lst, ForExec, arg);
+ Lst_ForEach(&arg->lst, ForExec, arg);
free(arg->var);
free(arg->text);
- Lst_Destroy(arg->lst, (SimpleProc)free);
+ Lst_Destroy(&arg->lst, (SimpleProc)free);
free(arg);
}
diff --git a/usr.bin/make/job.c b/usr.bin/make/job.c
index db174089b7b..0b78264af54 100644
--- a/usr.bin/make/job.c
+++ b/usr.bin/make/job.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: job.c,v 1.28 2000/06/10 01:41:05 espie Exp $ */
+/* $OpenBSD: job.c,v 1.29 2000/06/17 14:38:15 espie Exp $ */
/* $NetBSD: job.c,v 1.16 1996/11/06 17:59:08 christos Exp $ */
/*
@@ -43,7 +43,7 @@
#if 0
static char sccsid[] = "@(#)job.c 8.2 (Berkeley) 3/19/94";
#else
-static char rcsid[] = "$OpenBSD: job.c,v 1.28 2000/06/10 01:41:05 espie Exp $";
+static char rcsid[] = "$OpenBSD: job.c,v 1.29 2000/06/17 14:38:15 espie Exp $";
#endif
#endif /* not lint */
@@ -223,7 +223,7 @@ static int maxJobs; /* The most children we can run at once */
static int maxLocal; /* The most local ones we can have */
STATIC int nJobs; /* The number of children currently running */
STATIC int nLocal; /* The number of local children */
-STATIC Lst jobs; /* The structures that describe them */
+STATIC LIST jobs; /* The structures that describe them */
STATIC Boolean jobFull; /* Flag to tell when the job table is full. It
* is set TRUE when (1) the total number of
* running jobs equals the maximum allowed or
@@ -257,7 +257,7 @@ STATIC char *targFmt; /* Format string to use to head output from a
* been migrated home, the job is placed on the stoppedJobs queue to be run
* when the next job finishes.
*/
-STATIC Lst stoppedJobs; /* Lst of Job structures describing
+STATIC LIST stoppedJobs; /* Lst of Job structures describing
* jobs that were stopped due to concurrency
* limits or migration home */
@@ -380,7 +380,7 @@ JobPassSig(signo)
(void) fprintf(stdout, "JobPassSig(%d) called.\n", signo);
(void) fflush(stdout);
}
- Lst_ForEach(jobs, JobCondPassSig, &signo);
+ Lst_ForEach(&jobs, JobCondPassSig, &signo);
/*
* Deal with proper cleanup based on the signal received. We only run
@@ -426,7 +426,7 @@ JobPassSig(signo)
(void) KILL(getpid(), signo);
signo = SIGCONT;
- Lst_ForEach(jobs, JobCondPassSig, &signo);
+ Lst_ForEach(&jobs, JobCondPassSig, &signo);
(void) sigprocmask(SIG_SETMASK, &omask, NULL);
sigprocmask(SIG_SETMASK, &omask, NULL);
@@ -531,8 +531,7 @@ JobPrintCommand(cmdp, jobp)
if (strcmp(cmd, "...") == 0) {
job->node->type |= OP_SAVE_CMDS;
if ((job->flags & JOB_IGNDOTS) == 0) {
- job->tailCmds = Lst_Succ(Lst_Member(job->node->commands,
- cmd));
+ job->tailCmds = Lst_Succ(Lst_Member(&job->node->commands, cmd));
return 0;
}
return 1;
@@ -551,7 +550,7 @@ JobPrintCommand(cmdp, jobp)
* For debugging, we replace each command with the result of expanding
* the variables in the command.
*/
- cmdNode = Lst_Member(job->node->commands, cmd);
+ cmdNode = Lst_Member(&job->node->commands, cmd);
cmdStart = cmd = Var_Subst(cmd, job->node, FALSE);
Lst_Replace(cmdNode, cmdStart);
@@ -672,7 +671,7 @@ JobSaveCommand(cmd, gn)
char *result;
result = Var_Subst((char *)cmd, (GNode *)gn, FALSE);
- Lst_AtEnd(postCommands->commands, result);
+ Lst_AtEnd(&postCommands->commands, result);
}
@@ -848,7 +847,7 @@ JobFinish(job, status)
WSTOPSIG(*status));
}
job->flags |= JOB_RESUME;
- Lst_AtEnd(stoppedJobs, job);
+ Lst_AtEnd(&stoppedJobs, job);
#ifdef REMOTE
if (job->flags & JOB_REMIGRATE)
JobRestart(job);
@@ -886,7 +885,7 @@ JobFinish(job, status)
#endif
}
job->flags &= ~JOB_CONTINUING;
- Lst_AtEnd(jobs, job);
+ Lst_AtEnd(&jobs, job);
nJobs += 1;
if (!(job->flags & JOB_REMOTE)) {
if (DEBUG(JOB)) {
@@ -923,7 +922,7 @@ JobFinish(job, status)
* ok, it's ok. If there's an error, this puppy is done.
*/
if (compatMake && (WIFEXITED(*status) &&
- !Lst_IsAtEnd(job->node->commands))) {
+ !Lst_IsAtEnd(&job->node->commands))) {
switch (JobStart(job->node, job->flags & JOB_IGNDOTS, job)) {
case JOB_RUNNING:
done = FALSE;
@@ -1081,13 +1080,13 @@ Job_CheckCommands(gn, abortProc)
void (*abortProc) __P((char *, ...));
/* Function to abort with message */
{
- if (OP_NOP(gn->type) && Lst_IsEmpty(gn->commands) &&
+ if (OP_NOP(gn->type) && Lst_IsEmpty(&gn->commands) &&
(gn->type & OP_LIB) == 0) {
/*
* No commands. Look for .DEFAULT rule from which we might infer
* commands
*/
- if ((DEFAULT != NULL) && !Lst_IsEmpty(DEFAULT->commands)) {
+ if ((DEFAULT != NULL) && !Lst_IsEmpty(&DEFAULT->commands)) {
/*
* Make only looks for a .DEFAULT if the node was never the
* target of an operator, so that's what we do too. If
@@ -1325,7 +1324,7 @@ jobExecFinish:
* Now the job is actually running, add it to the table.
*/
nJobs += 1;
- Lst_AtEnd(jobs, job);
+ Lst_AtEnd(&jobs, job);
if (nJobs == maxJobs) {
jobFull = TRUE;
}
@@ -1460,7 +1459,7 @@ JobRestart(job)
(void) fprintf(stdout, "*** holding\n");
(void) fflush(stdout);
}
- Lst_AtFront(stoppedJobs, job);
+ Lst_AtFront(&stoppedJobs, job);
jobFull = TRUE;
if (DEBUG(JOB)) {
(void) fprintf(stdout, "Job queue is full.\n");
@@ -1481,7 +1480,7 @@ JobRestart(job)
}
#endif
- Lst_AtEnd(jobs, job);
+ Lst_AtEnd(&jobs, job);
nJobs += 1;
if (nJobs == maxJobs) {
jobFull = TRUE;
@@ -1526,7 +1525,7 @@ JobRestart(job)
(void) fprintf(stdout, "holding\n");
(void) fflush(stdout);
}
- Lst_AtFront(stoppedJobs, job);
+ Lst_AtFront(&stoppedJobs, job);
jobFull = TRUE;
if (DEBUG(JOB)) {
(void) fprintf(stdout, "Job queue is full.\n");
@@ -1625,7 +1624,7 @@ JobRestart(job)
(void) fprintf(stdout, "table full\n");
(void) fflush(stdout);
}
- Lst_AtFront(stoppedJobs, job);
+ Lst_AtFront(&stoppedJobs, job);
jobFull = TRUE;
if (DEBUG(JOB)) {
(void) fprintf(stdout, "Job queue is full.\n");
@@ -1748,14 +1747,14 @@ JobStart(gn, flags, previous)
* and print it to the command file. If the command was an
* ellipsis, note that there's nothing more to execute.
*/
- if ((job->flags&JOB_FIRST) && (Lst_Open(gn->commands) != SUCCESS)){
+ if ((job->flags&JOB_FIRST) && (Lst_Open(&gn->commands) != SUCCESS)){
cmdsOK = FALSE;
} else {
- LstNode ln = Lst_Next(gn->commands);
+ LstNode ln = Lst_Next(&gn->commands);
if ((ln == NULL) || !JobPrintCommand(Lst_Datum(ln), job)) {
noExec = TRUE;
- Lst_Close(gn->commands);
+ Lst_Close(&gn->commands);
}
if (noExec && !(job->flags & JOB_FIRST)) {
/*
@@ -1777,7 +1776,7 @@ JobStart(gn, flags, previous)
* We can do all the commands at once. hooray for sanity
*/
numCommands = 0;
- Lst_Find(gn->commands, JobPrintCommand, job);
+ Lst_Find(&gn->commands, JobPrintCommand, job);
/*
* If we didn't print out any commands to the shell script,
@@ -1803,7 +1802,7 @@ JobStart(gn, flags, previous)
* doesn't do any harm in this case and may do some good.
*/
if (cmdsOK)
- Lst_Find(gn->commands, JobPrintCommand, job);
+ Lst_Find(&gn->commands, JobPrintCommand, job);
/*
* Don't execute the shell, thank you.
*/
@@ -1922,7 +1921,7 @@ JobStart(gn, flags, previous)
(void) fflush(stdout);
}
job->flags |= JOB_RESTART;
- Lst_AtEnd(stoppedJobs, job);
+ Lst_AtEnd(&stoppedJobs, job);
} else {
if ((nLocal >= maxLocal) && local) {
/*
@@ -2234,24 +2233,24 @@ Job_CatchChildren(block)
}
- jnode = Lst_Find(jobs, JobCmpPid, &pid);
+ jnode = Lst_Find(&jobs, JobCmpPid, &pid);
if (jnode == NULL) {
if (WIFSIGNALED(status) && (WTERMSIG(status) == SIGCONT)) {
- jnode = Lst_Find(stoppedJobs, JobCmpPid, &pid);
+ jnode = Lst_Find(&stoppedJobs, JobCmpPid, &pid);
if (jnode == NULL) {
Error("Resumed child (%d) not in table", pid);
continue;
}
job = (Job *)Lst_Datum(jnode);
- (void) Lst_Remove(stoppedJobs, jnode);
+ Lst_Remove(&stoppedJobs, jnode);
} else {
Error("Child (%d) not in table?", pid);
continue;
}
} else {
job = (Job *) Lst_Datum(jnode);
- Lst_Remove(jobs, jnode);
+ Lst_Remove(&jobs, jnode);
nJobs -= 1;
if (jobFull && DEBUG(JOB)) {
(void) fprintf(stdout, "Job queue is no longer full.\n");
@@ -2342,18 +2341,18 @@ Job_CatchOutput()
free(readfdsp);
return;
} else {
- if (Lst_Open(jobs) == FAILURE) {
+ if (Lst_Open(&jobs) == FAILURE) {
free(readfdsp);
Punt("Cannot open job table");
}
- while (nfds && (ln = Lst_Next(jobs)) != NULL) {
+ while (nfds && (ln = Lst_Next(&jobs)) != NULL) {
job = (Job *) Lst_Datum(ln);
if (FD_ISSET(job->inPipe, readfdsp)) {
JobDoOutput(job, FALSE);
nfds -= 1;
}
}
- Lst_Close(jobs);
+ Lst_Close(&jobs);
}
free(readfdsp);
}
@@ -2402,8 +2401,8 @@ Job_Init(maxproc, maxlocal)
{
GNode *begin; /* node for commands to do at the very start */
- jobs = Lst_Init();
- stoppedJobs = Lst_Init();
+ Lst_Init(&jobs);
+ Lst_Init(&stoppedJobs);
maxJobs = maxproc;
maxLocal = maxlocal;
nJobs = 0;
@@ -2539,7 +2538,7 @@ Boolean
Job_Empty()
{
if (nJobs == 0) {
- if (!Lst_IsEmpty(stoppedJobs) && !aborting) {
+ if (!Lst_IsEmpty(&stoppedJobs) && !aborting) {
/*
* The job table is obviously not full if it has no jobs in
* it...Try and restart the stopped jobs.
@@ -2790,8 +2789,8 @@ JobInterrupt(runINTERRUPT, signo)
aborting = ABORT_INTERRUPT;
- (void) Lst_Open(jobs);
- while ((ln = Lst_Next(jobs)) != NULL) {
+ (void) Lst_Open(&jobs);
+ while ((ln = Lst_Next(&jobs)) != NULL) {
job = (Job *) Lst_Datum(ln);
if (!Targ_Precious(job->node)) {
@@ -2835,8 +2834,8 @@ JobInterrupt(runINTERRUPT, signo)
}
#ifdef REMOTE
- (void)Lst_Open(stoppedJobs);
- while ((ln = Lst_Next(stoppedJobs)) != NULL) {
+ (void)Lst_Open(&stoppedJobs);
+ while ((ln = Lst_Next(&stoppedJobs)) != NULL) {
job = (Job *) Lst_Datum(ln);
if (job->flags & JOB_RESTART) {
@@ -2893,7 +2892,7 @@ JobInterrupt(runINTERRUPT, signo)
#endif /* RMT_WANTS_SIGNALS */
}
#endif
- Lst_Close(stoppedJobs);
+ Lst_Close(&stoppedJobs);
if (runINTERRUPT && !touchFlag) {
interrupt = Targ_FindNode(".INTERRUPT", TARG_NOCREATE);
@@ -2925,7 +2924,7 @@ JobInterrupt(runINTERRUPT, signo)
int
Job_Finish()
{
- if (postCommands != NULL && !Lst_IsEmpty(postCommands->commands)) {
+ if (postCommands != NULL && !Lst_IsEmpty(&postCommands->commands)) {
if (errors) {
Error("Errors reported so .END ignored");
} else {
@@ -3014,8 +3013,8 @@ Job_AbortAll()
if (nJobs) {
- (void) Lst_Open(jobs);
- while ((ln = Lst_Next(jobs)) != NULL) {
+ (void) Lst_Open(&jobs);
+ while ((ln = Lst_Next(&jobs)) != NULL) {
job = (Job *) Lst_Datum(ln);
/*
@@ -3070,10 +3069,10 @@ JobFlagForMigration(hostID)
(void) fprintf(stdout, "JobFlagForMigration(%d) called.\n", hostID);
(void) fflush(stdout);
}
- jnode = Lst_Find(jobs, JobCmpRmtID, &hostID);
+ jnode = Lst_Find(&jobs, JobCmpRmtID, &hostID);
if (jnode == NULL) {
- jnode = Lst_Find(stoppedJobs, JobCmpRmtID, &hostID);
+ jnode = Lst_Find(&stoppedJobs, JobCmpRmtID, &hostID);
if (jnode == NULL) {
if (DEBUG(JOB)) {
Error("Evicting host(%d) not in table", hostID);
@@ -3117,7 +3116,7 @@ JobRestartJobs()
{
Job *job;
- while (!jobFull && (job = (Job *)Lst_DeQueue(stoppedJobs)) != NULL) {
+ while (!jobFull && (job = (Job *)Lst_DeQueue(&stoppedJobs)) != NULL) {
if (DEBUG(JOB)) {
(void) fprintf(stdout,
"Job queue is not full. Restarting a stopped job.\n");
diff --git a/usr.bin/make/job.h b/usr.bin/make/job.h
index 9fe3af337e3..07955d14492 100644
--- a/usr.bin/make/job.h
+++ b/usr.bin/make/job.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: job.h,v 1.6 1999/12/18 21:53:32 espie Exp $ */
+/* $OpenBSD: job.h,v 1.7 2000/06/17 14:38:17 espie Exp $ */
/* $NetBSD: job.h,v 1.5 1996/11/06 17:59:10 christos Exp $ */
/*
@@ -213,8 +213,8 @@ extern GNode *lastNode; /* Last node for which a banner was printed.
* for which the banner was printed */
extern int nJobs; /* Number of jobs running (local and remote) */
extern int nLocal; /* Number of jobs running locally */
-extern Lst jobs; /* List of active job descriptors */
-extern Lst stoppedJobs; /* List of jobs that are stopped or didn't
+extern LIST jobs; /* List of active job descriptors */
+extern LIST stoppedJobs; /* List of jobs that are stopped or didn't
* quite get started */
extern Boolean jobFull; /* Non-zero if no more jobs should/will start*/
diff --git a/usr.bin/make/lst.h b/usr.bin/make/lst.h
index 4dd6613d4f3..f914452de58 100644
--- a/usr.bin/make/lst.h
+++ b/usr.bin/make/lst.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: lst.h,v 1.14 2000/06/17 14:34:04 espie Exp $ */
+/* $OpenBSD: lst.h,v 1.15 2000/06/17 14:38:17 espie Exp $ */
/* $NetBSD: lst.h,v 1.7 1996/11/06 17:59:12 christos Exp $ */
/*
@@ -109,12 +109,16 @@ typedef void * (*DuplicateProc) __P((void *));
/*
* Creation/destruction functions
*/
+/* CTOR/DTOR, ala C++ */
+void Lst_Init __P((Lst));
+void Lst_Destroy __P((Lst, SimpleProc));
+
/* Create a new list */
-Lst Lst_Init __P((void));
+Lst Lst_New __P((void));
+/* Destroy an old one */
+void Lst_Delete __P((Lst, SimpleProc));
/* Duplicate an existing list */
Lst Lst_Duplicate __P((Lst, DuplicateProc));
-/* Destroy an old one */
-void Lst_Destroy __P((Lst, SimpleProc));
/* True if list is empty */
Boolean Lst_IsEmpty __P((Lst));
diff --git a/usr.bin/make/lst.lib/lstDestroy.c b/usr.bin/make/lst.lib/lstDestroy.c
index 74f285ea40e..e584fb16834 100644
--- a/usr.bin/make/lst.lib/lstDestroy.c
+++ b/usr.bin/make/lst.lib/lstDestroy.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: lstDestroy.c,v 1.8 2000/06/17 14:34:07 espie Exp $ */
+/* $OpenBSD: lstDestroy.c,v 1.9 2000/06/17 14:38:21 espie Exp $ */
/* $NetBSD: lstDestroy.c,v 1.6 1996/11/06 17:59:37 christos Exp $ */
/*
@@ -41,7 +41,7 @@
#if 0
static char sccsid[] = "@(#)lstDestroy.c 8.1 (Berkeley) 6/6/93";
#else
-static char rcsid[] = "$OpenBSD: lstDestroy.c,v 1.8 2000/06/17 14:34:07 espie Exp $";
+static char rcsid[] = "$OpenBSD: lstDestroy.c,v 1.9 2000/06/17 14:38:21 espie Exp $";
#endif
#endif /* not lint */
@@ -52,6 +52,16 @@ static char rcsid[] = "$OpenBSD: lstDestroy.c,v 1.8 2000/06/17 14:34:07 espie Ex
#include "lstInt.h"
+void
+Lst_Delete(l, freeProc)
+ Lst l;
+ SimpleProc freeProc;
+{
+ if (l != NULL)
+ Lst_Destroy(l, freeProc);
+ free(l);
+}
+
/*-
*-----------------------------------------------------------------------
* Lst_Destroy --
@@ -59,9 +69,6 @@ static char rcsid[] = "$OpenBSD: lstDestroy.c,v 1.8 2000/06/17 14:34:07 espie Ex
* given, it is called with the datum from each node in turn before
* the node is freed.
*
- * Results:
- * None.
- *
* Side Effects:
* The given list is freed in its entirety.
*
@@ -75,9 +82,6 @@ Lst_Destroy(l, freeProc)
LstNode ln;
LstNode tln;
- if (l == NULL)
- return;
-
if (freeProc) {
for (ln = l->firstPtr; ln != NULL; ln = tln) {
tln = ln->nextPtr;
@@ -90,6 +94,4 @@ Lst_Destroy(l, freeProc)
free(ln);
}
}
-
- free(l);
}
diff --git a/usr.bin/make/lst.lib/lstDupl.c b/usr.bin/make/lst.lib/lstDupl.c
index 30a1e135d89..349c8657226 100644
--- a/usr.bin/make/lst.lib/lstDupl.c
+++ b/usr.bin/make/lst.lib/lstDupl.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: lstDupl.c,v 1.10 2000/06/17 14:34:07 espie Exp $ */
+/* $OpenBSD: lstDupl.c,v 1.11 2000/06/17 14:38:22 espie Exp $ */
/* $NetBSD: lstDupl.c,v 1.6 1996/11/06 17:59:37 christos Exp $ */
/*
@@ -41,7 +41,7 @@
#if 0
static char sccsid[] = "@(#)lstDupl.c 8.1 (Berkeley) 6/6/93";
#else
-static char rcsid[] = "$OpenBSD: lstDupl.c,v 1.10 2000/06/17 14:34:07 espie Exp $";
+static char rcsid[] = "$OpenBSD: lstDupl.c,v 1.11 2000/06/17 14:38:22 espie Exp $";
#endif
#endif /* not lint */
@@ -74,11 +74,10 @@ Lst_Duplicate(l, copyProc)
Lst nl;
LstNode ln;
- if (!LstValid (l)) {
- return (NULL);
- }
+ if (!LstValid(l))
+ return NULL;
- nl = Lst_Init();
+ nl = Lst_New();
if (nl == NULL)
return NULL;
@@ -89,5 +88,5 @@ Lst_Duplicate(l, copyProc)
Lst_AtEnd(nl, ln->datum);
}
- return (nl);
+ return nl;
}
diff --git a/usr.bin/make/lst.lib/lstInit.c b/usr.bin/make/lst.lib/lstInit.c
index 8c5ddbac253..1497be9b03d 100644
--- a/usr.bin/make/lst.lib/lstInit.c
+++ b/usr.bin/make/lst.lib/lstInit.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: lstInit.c,v 1.7 2000/06/17 14:34:08 espie Exp $ */
+/* $OpenBSD: lstInit.c,v 1.8 2000/06/17 14:38:22 espie Exp $ */
/* $NetBSD: lstInit.c,v 1.5 1996/11/06 17:59:43 christos Exp $ */
/*
@@ -41,7 +41,7 @@
#if 0
static char sccsid[] = "@(#)lstInit.c 8.1 (Berkeley) 6/6/93";
#else
-static char rcsid[] = "$OpenBSD: lstInit.c,v 1.7 2000/06/17 14:34:08 espie Exp $";
+static char rcsid[] = "$OpenBSD: lstInit.c,v 1.8 2000/06/17 14:38:22 espie Exp $";
#endif
#endif /* not lint */
@@ -54,28 +54,32 @@ static char rcsid[] = "$OpenBSD: lstInit.c,v 1.7 2000/06/17 14:34:08 espie Exp $
/*-
*-----------------------------------------------------------------------
- * Lst_Init --
+ * Lst_New --
* Create and initialize a new list.
- *
- * Results:
- * The created list.
- *
- * Side Effects:
- * A list is created, what else?
- *
*-----------------------------------------------------------------------
*/
Lst
-Lst_Init()
+Lst_New()
{
register Lst nList;
PAlloc(nList, Lst);
-
- nList->firstPtr = NULL;
- nList->lastPtr = NULL;
- nList->isOpen = FALSE;
- nList->atEnd = Unknown;
+ Lst_Init(nList);
return nList;
}
+/*-
+ *-----------------------------------------------------------------------
+ * Lst_Init --
+ * Initialize a new list.
+ *-----------------------------------------------------------------------
+ */
+void
+Lst_Init(l)
+ Lst l;
+{
+ l->firstPtr = NULL;
+ l->lastPtr = NULL;
+ l->isOpen = FALSE;
+ l->atEnd = Unknown;
+}
diff --git a/usr.bin/make/main.c b/usr.bin/make/main.c
index 25745f2e59f..6ef4c6da020 100644
--- a/usr.bin/make/main.c
+++ b/usr.bin/make/main.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: main.c,v 1.32 2000/06/10 01:41:05 espie Exp $ */
+/* $OpenBSD: main.c,v 1.33 2000/06/17 14:38:18 espie Exp $ */
/* $NetBSD: main.c,v 1.34 1997/03/24 20:56:36 gwr Exp $ */
/*
@@ -49,7 +49,7 @@ static char copyright[] =
#if 0
static char sccsid[] = "@(#)main.c 8.3 (Berkeley) 3/19/94";
#else
-static char rcsid[] = "$OpenBSD: main.c,v 1.32 2000/06/10 01:41:05 espie Exp $";
+static char rcsid[] = "$OpenBSD: main.c,v 1.33 2000/06/17 14:38:18 espie Exp $";
#endif
#endif /* not lint */
@@ -112,15 +112,15 @@ static char rcsid[] = "$OpenBSD: main.c,v 1.32 2000/06/10 01:41:05 espie Exp $";
#define MAKEFLAGS ".MAKEFLAGS"
-Lst create; /* Targets to be made */
+LIST create; /* Targets to be made */
time_t now = OUT_OF_DATE;/* Time at start of make */
GNode *DEFAULT; /* .DEFAULT node */
Boolean allPrecious; /* .PRECIOUS given on line by itself */
static Boolean noBuiltins; /* -r flag */
-static Lst makefiles; /* ordered list of makefiles to read */
+static LIST makefiles; /* ordered list of makefiles to read */
static Boolean printVars; /* print value of one or more vars */
-static Lst variables; /* list of variables to print */
+static LIST variables; /* list of variables to print */
int maxJobs; /* -j argument */
static int maxLocal; /* -L argument */
Boolean compatMake; /* -B argument */
@@ -189,7 +189,7 @@ rearg: while((c = getopt(argc, argv, OPTFLAGS)) != -1) {
break;
case 'V':
printVars = TRUE;
- Lst_AtEnd(variables, optarg);
+ Lst_AtEnd(&variables, optarg);
Var_Append(MAKEFLAGS, "-V", VAR_GLOBAL);
Var_Append(MAKEFLAGS, optarg, VAR_GLOBAL);
break;
@@ -280,7 +280,7 @@ rearg: while((c = getopt(argc, argv, OPTFLAGS)) != -1) {
Var_Append(MAKEFLAGS, "-e", VAR_GLOBAL);
break;
case 'f':
- Lst_AtEnd(makefiles, optarg);
+ Lst_AtEnd(&makefiles, optarg);
break;
case 'i':
ignoreErrors = TRUE;
@@ -310,7 +310,7 @@ rearg: while((c = getopt(argc, argv, OPTFLAGS)) != -1) {
Var_Append(MAKEFLAGS, "-k", VAR_GLOBAL);
break;
case 'm':
- Dir_AddDir(sysIncPath, optarg);
+ Dir_AddDir(&sysIncPath, optarg);
Var_Append(MAKEFLAGS, "-m", VAR_GLOBAL);
Var_Append(MAKEFLAGS, optarg, VAR_GLOBAL);
break;
@@ -371,7 +371,7 @@ rearg: while((c = getopt(argc, argv, OPTFLAGS)) != -1) {
optind = 1; /* - */
goto rearg;
}
- Lst_AtEnd(create, estrdup(*argv));
+ Lst_AtEnd(&create, estrdup(*argv));
}
}
@@ -477,7 +477,6 @@ main(argc, argv)
char cdpath[MAXPATHLEN + 1];
char *machine = getenv("MACHINE");
char *machine_arch = getenv("MACHINE_ARCH");
- Lst sysMkPath; /* Path of sys.mk */
char *cp = NULL, *start;
/* avoid faults on read-only strings */
static char syspath[] = _PATH_DEFSYSPATH;
@@ -588,10 +587,10 @@ main(argc, argv)
setenv("PWD", objdir, 1);
unsetenv("CDPATH");
- create = Lst_Init();
- makefiles = Lst_Init();
+ Lst_Init(&create);
+ Lst_Init(&makefiles);
printVars = FALSE;
- variables = Lst_Init();
+ Lst_Init(&variables);
beSilent = FALSE; /* Print commands as executed */
ignoreErrors = FALSE; /* Pay attention to non-zero returns */
noExecute = FALSE; /* Execute all commands */
@@ -625,7 +624,7 @@ main(argc, argv)
Var_Init(); /* As well as the lists of variables for
* parsing arguments */
if (objdir != curdir)
- Dir_AddDir(dirSearchPath, curdir);
+ Dir_AddDir(&dirSearchPath, curdir);
Var_Set(".CURDIR", curdir, VAR_GLOBAL);
Var_Set(".OBJDIR", objdir, VAR_GLOBAL);
@@ -672,10 +671,10 @@ main(argc, argv)
* created. If none specified, make the variable empty -- the parser
* will fill the thing in with the default or .MAIN target.
*/
- if (!Lst_IsEmpty(create)) {
+ if (!Lst_IsEmpty(&create)) {
LstNode ln;
- for (ln = Lst_First(create); ln != NULL;
+ for (ln = Lst_First(&create); ln != NULL;
ln = Lst_Succ(ln)) {
char *name = (char *)Lst_Datum(ln);
@@ -690,15 +689,15 @@ main(argc, argv)
* add the directories from the DEFSYSPATH (more than one may be given
* as dir1:...:dirn) to the system include path.
*/
- if (Lst_IsEmpty(sysIncPath)) {
+ if (Lst_IsEmpty(&sysIncPath)) {
for (start = syspath; *start != '\0'; start = cp) {
for (cp = start; *cp != '\0' && *cp != ':'; cp++)
continue;
if (*cp == '\0') {
- Dir_AddDir(sysIncPath, start);
+ Dir_AddDir(&sysIncPath, start);
} else {
*cp++ = '\0';
- Dir_AddDir(sysIncPath, start);
+ Dir_AddDir(&sysIncPath, start);
}
}
}
@@ -710,20 +709,21 @@ main(argc, argv)
*/
if (!noBuiltins) {
LstNode ln;
+ LIST sysMkPath; /* Path of sys.mk */
- sysMkPath = Lst_Init();
- Dir_Expand (_PATH_DEFSYSMK, sysIncPath, sysMkPath);
- if (Lst_IsEmpty(sysMkPath))
+ Lst_Init(&sysMkPath);
+ Dir_Expand(_PATH_DEFSYSMK, &sysIncPath, &sysMkPath);
+ if (Lst_IsEmpty(&sysMkPath))
Fatal("make: no system rules (%s).", _PATH_DEFSYSMK);
- ln = Lst_Find(sysMkPath, ReadMakefile, NULL);
+ ln = Lst_Find(&sysMkPath, ReadMakefile, NULL);
if (ln != NULL)
Fatal("make: cannot open %s.", (char *)Lst_Datum(ln));
}
- if (!Lst_IsEmpty(makefiles)) {
+ if (!Lst_IsEmpty(&makefiles)) {
LstNode ln;
- ln = Lst_Find(makefiles, ReadMakefile, NULL);
+ ln = Lst_Find(&makefiles, ReadMakefile, NULL);
if (ln != NULL)
Fatal("make: cannot open %s.", (char *)Lst_Datum(ln));
} else if (!ReadMakefile("BSDmakefile", NULL))
@@ -767,7 +767,7 @@ main(argc, argv)
savec = *cp;
*cp = '\0';
/* Add directory to search path */
- Dir_AddDir(dirSearchPath, path);
+ Dir_AddDir(&dirSearchPath, path);
*cp = savec;
path = cp + 1;
} while (savec == ':');
@@ -788,7 +788,7 @@ main(argc, argv)
if (printVars) {
LstNode ln;
- for (ln = Lst_First(variables); ln != NULL;
+ for (ln = Lst_First(&variables); ln != NULL;
ln = Lst_Succ(ln)) {
char *value = Var_Value((char *)Lst_Datum(ln),
VAR_GLOBAL);
@@ -802,10 +802,10 @@ main(argc, argv)
* to create. If none was given on the command line, we consult the
* parsing module to find the main target(s) to create.
*/
- if (Lst_IsEmpty(create))
+ if (Lst_IsEmpty(&create))
targs = Parse_MainName();
else
- targs = Targ_FindList(create, TARG_CREATE);
+ targs = Targ_FindList(&create, TARG_CREATE);
if (!compatMake && !printVars) {
/*
@@ -831,10 +831,10 @@ main(argc, argv)
Compat_Run(targs);
}
- Lst_Destroy(targs, NOFREE);
- Lst_Destroy(variables, NOFREE);
- Lst_Destroy(makefiles, NOFREE);
- Lst_Destroy(create, (SimpleProc)free);
+ Lst_Delete(targs, NOFREE);
+ Lst_Destroy(&variables, NOFREE);
+ Lst_Destroy(&makefiles, NOFREE);
+ Lst_Destroy(&create, (SimpleProc)free);
/* print the graph now it's been processed if the user requested it */
if (DEBUG(GRAPH2))
@@ -870,7 +870,7 @@ ReadMakefile(p, q)
void *q;
{
char *fname = p; /* makefile to read */
- extern Lst parseIncPath;
+ extern LIST parseIncPath;
FILE *stream;
char *name, path[MAXPATHLEN + 1];
@@ -889,9 +889,9 @@ ReadMakefile(p, q)
}
}
/* look in -I and system include directories. */
- name = Dir_FindFile(fname, parseIncPath);
+ name = Dir_FindFile(fname, &parseIncPath);
if (!name)
- name = Dir_FindFile(fname, sysIncPath);
+ name = Dir_FindFile(fname, &sysIncPath);
if (!name || !(stream = fopen(name, "r")))
return(FALSE);
fname = name;
diff --git a/usr.bin/make/make.c b/usr.bin/make/make.c
index fd8bfec8ddb..ca8032f76af 100644
--- a/usr.bin/make/make.c
+++ b/usr.bin/make/make.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: make.c,v 1.16 2000/06/10 01:41:05 espie Exp $ */
+/* $OpenBSD: make.c,v 1.17 2000/06/17 14:38:18 espie Exp $ */
/* $NetBSD: make.c,v 1.10 1996/11/06 17:59:15 christos Exp $ */
/*
@@ -43,7 +43,7 @@
#if 0
static char sccsid[] = "@(#)make.c 8.1 (Berkeley) 6/6/93";
#else
-static char rcsid[] = "$OpenBSD: make.c,v 1.16 2000/06/10 01:41:05 espie Exp $";
+static char rcsid[] = "$OpenBSD: make.c,v 1.17 2000/06/17 14:38:18 espie Exp $";
#endif
#endif /* not lint */
@@ -84,7 +84,7 @@ static char rcsid[] = "$OpenBSD: make.c,v 1.16 2000/06/10 01:41:05 espie Exp $";
#include "dir.h"
#include "job.h"
-static Lst toBeMade; /* The current fringe of the graph. These
+static LIST toBeMade; /* The current fringe of the graph. These
* are nodes which await examination by
* MakeOODate. It is added to by
* Make_Update and subtracted from by
@@ -268,7 +268,7 @@ Make_OODate (gn)
* thinking they're out-of-date.
*/
if (!oodate)
- Lst_ForEach(gn->parents, MakeTimeStamp, gn);
+ Lst_ForEach(&gn->parents, MakeTimeStamp, gn);
return (oodate);
}
@@ -324,25 +324,25 @@ Make_HandleUse(cgn, pgn)
LstNode ln; /* An element in the children list */
if (cgn->type & (OP_USE|OP_TRANSFORM)) {
- if ((cgn->type & OP_USE) || Lst_IsEmpty(pgn->commands)) {
+ if ((cgn->type & OP_USE) || Lst_IsEmpty(&pgn->commands)) {
/*
* .USE or transformation and target has no commands -- append
* the child's commands to the parent.
*/
- Lst_Concat (pgn->commands, cgn->commands, LST_CONCNEW);
+ Lst_Concat(&pgn->commands, &cgn->commands, LST_CONCNEW);
}
- if (Lst_Open (cgn->children) == SUCCESS) {
- while ((ln = Lst_Next (cgn->children)) != NULL) {
+ if (Lst_Open(&cgn->children) == SUCCESS) {
+ while ((ln = Lst_Next(&cgn->children)) != NULL) {
gn = (GNode *)Lst_Datum (ln);
- if (Lst_Member (pgn->children, gn) == NULL) {
- Lst_AtEnd(pgn->children, gn);
- Lst_AtEnd(gn->parents, pgn);
+ if (Lst_Member(&pgn->children, gn) == NULL) {
+ Lst_AtEnd(&pgn->children, gn);
+ Lst_AtEnd(&gn->parents, pgn);
pgn->unmade += 1;
}
}
- Lst_Close (cgn->children);
+ Lst_Close(&cgn->children);
}
pgn->type |= cgn->type & ~(OP_OPMASK|OP_USE|OP_TRANSFORM);
@@ -433,7 +433,7 @@ Make_Update (cgn)
* To force things that depend on FRC to be made, so we have to
* check for gn->children being empty as well...
*/
- if (!Lst_IsEmpty(cgn->commands) || Lst_IsEmpty(cgn->children)) {
+ if (!Lst_IsEmpty(&cgn->commands) || Lst_IsEmpty(&cgn->children)) {
cgn->mtime = now;
}
#else
@@ -469,8 +469,8 @@ Make_Update (cgn)
#endif
}
- if (Lst_Open (cgn->parents) == SUCCESS) {
- while ((ln = Lst_Next (cgn->parents)) != NULL) {
+ if (Lst_Open(&cgn->parents) == SUCCESS) {
+ while ((ln = Lst_Next(&cgn->parents)) != NULL) {
pgn = (GNode *)Lst_Datum (ln);
if (pgn->make) {
pgn->unmade -= 1;
@@ -490,13 +490,13 @@ Make_Update (cgn)
* Queue the node up -- any unmade predecessors will
* be dealt with in MakeStartJobs.
*/
- Lst_EnQueue(toBeMade, pgn);
+ Lst_EnQueue(&toBeMade, pgn);
} else if (pgn->unmade < 0) {
Error ("Graph cycles through %s", pgn->name);
}
}
}
- Lst_Close (cgn->parents);
+ Lst_Close(&cgn->parents);
}
/*
* Deal with successor nodes. If any is marked for making and has an unmade
@@ -504,31 +504,29 @@ Make_Update (cgn)
* it means we need to place it in the queue as it restrained itself
* before.
*/
- for (ln = Lst_First(cgn->successors); ln != NULL; ln = Lst_Succ(ln)) {
+ for (ln = Lst_First(&cgn->successors); ln != NULL; ln = Lst_Succ(ln)) {
GNode *succ = (GNode *)Lst_Datum(ln);
if (succ->make && succ->unmade == 0 && succ->made == UNMADE &&
- Lst_Member(toBeMade, succ) == NULL)
- {
- Lst_EnQueue(toBeMade, succ);
- }
+ Lst_Member(&toBeMade, succ) == NULL)
+ Lst_EnQueue(&toBeMade, succ);
}
/*
* Set the .PREFIX and .IMPSRC variables for all the implied parents
* of this node.
*/
- if (Lst_Open (cgn->iParents) == SUCCESS) {
+ if (Lst_Open(&cgn->iParents) == SUCCESS) {
char *cpref = Var_Value(PREFIX, cgn);
- while ((ln = Lst_Next (cgn->iParents)) != NULL) {
+ while ((ln = Lst_Next(&cgn->iParents)) != NULL) {
pgn = (GNode *)Lst_Datum (ln);
if (pgn->make) {
Var_Set (IMPSRC, cname, pgn);
Var_Set (PREFIX, cpref, pgn);
}
}
- Lst_Close (cgn->iParents);
+ Lst_Close(&cgn->iParents);
}
}
@@ -623,7 +621,7 @@ void
Make_DoAllVar (gn)
GNode *gn;
{
- Lst_ForEach(gn->children, MakeAddAllSrc, gn);
+ Lst_ForEach(&gn->children, MakeAddAllSrc, gn);
if (!Var_Exists (OODATE, gn)) {
Var_Set (OODATE, "", gn);
@@ -657,7 +655,7 @@ MakeStartJobs ()
{
register GNode *gn;
- while (!Job_Full() && (gn = (GNode *)Lst_DeQueue(toBeMade)) != NULL) {
+ while (!Job_Full() && (gn = (GNode *)Lst_DeQueue(&toBeMade)) != NULL) {
if (DEBUG(MAKE)) {
printf ("Examining %s...", gn->name);
}
@@ -665,10 +663,10 @@ MakeStartJobs ()
* Make sure any and all predecessors that are going to be made,
* have been.
*/
- if (!Lst_IsEmpty(gn->preds)) {
+ if (!Lst_IsEmpty(&gn->preds)) {
LstNode ln;
- for (ln = Lst_First(gn->preds); ln != NULL; ln = Lst_Succ(ln)){
+ for (ln = Lst_First(&gn->preds); ln != NULL; ln = Lst_Succ(ln)){
GNode *pgn = (GNode *)Lst_Datum(ln);
if (pgn->make && pgn->made == UNMADE) {
@@ -755,11 +753,11 @@ MakePrintStatus(gnp, cyclep)
if (gn->made == CYCLE) {
Error("Graph cycles through `%s'", gn->name);
gn->made = ENDCYCLE;
- Lst_ForEach(gn->children, MakePrintStatus, &t);
+ Lst_ForEach(&gn->children, MakePrintStatus, &t);
gn->made = UNMADE;
} else if (gn->made != ENDCYCLE) {
gn->made = CYCLE;
- Lst_ForEach(gn->children, MakePrintStatus, &t);
+ Lst_ForEach(&gn->children, MakePrintStatus, &t);
}
} else {
printf ("`%s' not remade because of errors.\n", gn->name);
@@ -790,14 +788,14 @@ MakePrintStatus(gnp, cyclep)
*-----------------------------------------------------------------------
*/
Boolean
-Make_Run (targs)
+Make_Run(targs)
Lst targs; /* the initial list of targets */
{
register GNode *gn; /* a temporary pointer */
register Lst examine; /* List of targets to examine */
int errors; /* Number of errors the Job module reports */
- toBeMade = Lst_Init();
+ Lst_Init(&toBeMade);
examine = Lst_Duplicate(targs, NOCOPY);
numNodes = 0;
@@ -820,18 +818,18 @@ Make_Run (targs)
* Apply any .USE rules before looking for implicit dependencies
* to make sure everything has commands that should...
*/
- Lst_ForEach (gn->children, MakeHandleUse, gn);
+ Lst_ForEach(&gn->children, MakeHandleUse, gn);
Suff_FindDeps (gn);
if (gn->unmade != 0) {
- Lst_ForEach (gn->children, MakeAddChild, examine);
+ Lst_ForEach(&gn->children, MakeAddChild, examine);
} else {
- Lst_EnQueue(toBeMade, gn);
+ Lst_EnQueue(&toBeMade, gn);
}
}
}
- Lst_Destroy(examine, NOFREE);
+ Lst_Delete(examine, NOFREE);
if (queryFlag) {
/*
diff --git a/usr.bin/make/make.h b/usr.bin/make/make.h
index c7e3e82d5f1..097ebbf5f37 100644
--- a/usr.bin/make/make.h
+++ b/usr.bin/make/make.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: make.h,v 1.18 2000/04/17 23:54:47 espie Exp $ */
+/* $OpenBSD: make.h,v 1.19 2000/06/17 14:38:18 espie Exp $ */
/* $NetBSD: make.h,v 1.15 1997/03/10 21:20:00 christos Exp $ */
/*
@@ -152,18 +152,18 @@ typedef struct GNode {
time_t cmtime; /* The modification time of its youngest
* child */
- Lst iParents; /* Links to parents for which this is an
+ LIST iParents; /* Links to parents for which this is an
* implied source, if any */
- Lst cohorts; /* Other nodes for the :: operator */
- Lst parents; /* Nodes that depend on this one */
- Lst children; /* Nodes on which this one depends */
- Lst successors; /* Nodes that must be made after this one */
- Lst preds; /* Nodes that must be made before this one */
+ LIST cohorts; /* Other nodes for the :: operator */
+ LIST parents; /* Nodes that depend on this one */
+ LIST children; /* Nodes on which this one depends */
+ LIST successors; /* Nodes that must be made after this one */
+ LIST preds; /* Nodes that must be made before this one */
- Lst context; /* The local variables */
+ LIST context; /* The local variables */
unsigned long lineno; /* First line number of commands. */
const char * fname; /* File name of commands. */
- Lst commands; /* Creation commands */
+ LIST commands; /* Creation commands */
struct _Suff *suffix; /* Suffix for the node (determined by
* Suff_FindDeps and opaque to everyone
@@ -306,10 +306,10 @@ typedef struct GNode {
/*
* Global Variables
*/
-extern Lst create; /* The list of target names specified on the
+extern LIST create; /* The list of target names specified on the
* command line. used to resolve #if
* make(...) statements */
-extern Lst dirSearchPath; /* The list of directories to search when
+extern LIST dirSearchPath; /* The list of directories to search when
* looking for targets */
extern Boolean compatMake; /* True if we are make compatible */
@@ -348,7 +348,7 @@ extern time_t now; /* The time at the start of this whole
extern Boolean oldVars; /* Do old-style variable substitution */
-extern Lst sysIncPath; /* The system include path. */
+extern LIST sysIncPath; /* The system include path. */
/*
* debug control:
diff --git a/usr.bin/make/parse.c b/usr.bin/make/parse.c
index e471f28574a..339bb4ea157 100644
--- a/usr.bin/make/parse.c
+++ b/usr.bin/make/parse.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: parse.c,v 1.42 2000/06/10 01:41:06 espie Exp $ */
+/* $OpenBSD: parse.c,v 1.43 2000/06/17 14:38:18 espie Exp $ */
/* $NetBSD: parse.c,v 1.29 1997/03/10 21:20:04 christos Exp $ */
/*
@@ -43,7 +43,7 @@
#if 0
static char sccsid[] = "@(#)parse.c 8.3 (Berkeley) 3/19/94";
#else
-static char rcsid[] = "$OpenBSD: parse.c,v 1.42 2000/06/10 01:41:06 espie Exp $";
+static char rcsid[] = "$OpenBSD: parse.c,v 1.43 2000/06/17 14:38:18 espie Exp $";
#endif
#endif /* not lint */
@@ -105,7 +105,7 @@ static char rcsid[] = "$OpenBSD: parse.c,v 1.42 2000/06/10 01:41:06 espie Exp $"
#include "pathnames.h"
#ifdef CLEANUP
-static Lst fileNames; /* file names to free at end */
+static LIST fileNames; /* file names to free at end */
#endif
/*
@@ -117,7 +117,7 @@ static Lst fileNames; /* file names to free at end */
#define DONE 0
static Lst targets; /* targets we're working on */
#ifdef CLEANUP
-static Lst targCmds; /* command lines for targets */
+static LIST targCmds; /* command lines for targets */
#endif
static Boolean inLine; /* true if currently in a dependency
* line or its commands */
@@ -147,10 +147,10 @@ typedef struct IFile {
PTR *p; /* the char pointer */
} IFile;
-static Lst includes; /* stack of IFiles generated by
+static LIST includes; /* stack of IFiles generated by
* #includes */
-Lst parseIncPath; /* list of directories for "..." includes */
-Lst sysIncPath; /* list of directories for <...> includes */
+LIST parseIncPath; /* list of directories for "..." includes */
+LIST sysIncPath; /* list of directories for <...> includes */
/*-
* specType contains the SPECial TYPE of the current target. It is
@@ -435,10 +435,10 @@ ParseLinkSrc(pgnp, cgnp)
{
GNode *pgn = (GNode *)pgnp;
GNode *cgn = (GNode *)cgnp;
- if (Lst_Member(pgn->children, cgn) == NULL) {
- Lst_AtEnd(pgn->children, cgn);
+ if (Lst_Member(&pgn->children, cgn) == NULL) {
+ Lst_AtEnd(&pgn->children, cgn);
if (specType == Not)
- Lst_AtEnd(cgn->parents, pgn);
+ Lst_AtEnd(&cgn->parents, pgn);
pgn->unmade += 1;
}
}
@@ -500,9 +500,9 @@ ParseDoOp (gnp, opp)
* anything with their local variables, but better safe than
* sorry.
*/
- Lst_ForEach(gn->parents, ParseLinkSrc, cohort);
+ Lst_ForEach(&gn->parents, ParseLinkSrc, cohort);
cohort->type = OP_DOUBLEDEP|OP_INVISIBLE;
- Lst_AtEnd(gn->cohorts, cohort);
+ Lst_AtEnd(&gn->cohorts, cohort);
/*
* Replace the node in the targets list with the new copy
@@ -550,8 +550,8 @@ ParseAddDep(pp, sp)
* but checking is tedious, and the debugging output can show the
* problem
*/
- Lst_AtEnd(p->successors, s);
- Lst_AtEnd(s->preds, p);
+ Lst_AtEnd(&p->successors, s);
+ Lst_AtEnd(&s->preds, p);
return 1;
}
else
@@ -610,7 +610,7 @@ ParseDoSrc (tOp, src, allsrc)
* invoked if the user didn't specify a target on the command
* line. This is to allow #ifmake's to succeed, or something...
*/
- Lst_AtEnd(create, estrdup(src));
+ Lst_AtEnd(&create, estrdup(src));
/*
* Add the name to the .TARGETS variable as well, so the user cna
* employ that, if desired.
@@ -625,8 +625,8 @@ ParseDoSrc (tOp, src, allsrc)
*/
gn = Targ_FindNode(src, TARG_CREATE);
if (predecessor != NULL) {
- Lst_AtEnd(predecessor->successors, gn);
- Lst_AtEnd(gn->preds, predecessor);
+ Lst_AtEnd(&predecessor->successors, gn);
+ Lst_AtEnd(&gn->preds, predecessor);
}
/*
* The current source now becomes the predecessor for the next one.
@@ -656,7 +656,7 @@ ParseDoSrc (tOp, src, allsrc)
register GNode *cohort;
register LstNode ln;
- for (ln=Lst_First(gn->cohorts); ln != NULL; ln = Lst_Succ(ln)){
+ for (ln=Lst_First(&gn->cohorts); ln != NULL; ln = Lst_Succ(ln)){
cohort = (GNode *)Lst_Datum(ln);
if (tOp) {
cohort->type |= tOp;
@@ -784,11 +784,9 @@ ParseDoDependency (line)
Lst paths; /* List of search paths to alter when parsing
* a list of .PATH targets */
int tOp; /* operator from special target */
- Lst sources; /* list of archive source names after
- * expansion */
- Lst curTargs; /* list of target names to be found and added
+ LIST curTargs; /* list of target names to be found and added
* to the targets list */
- Lst curSrcs; /* list of sources in order */
+ LIST curSrcs; /* list of sources in order */
tOp = 0;
@@ -796,8 +794,8 @@ ParseDoDependency (line)
waiting = 0;
paths = (Lst)NULL;
- curTargs = Lst_Init();
- curSrcs = Lst_Init();
+ Lst_Init(&curTargs);
+ Lst_Init(&curSrcs);
do {
for (cp = line;
@@ -929,13 +927,12 @@ ParseDoDependency (line)
*/
switch (specType) {
case ExPath:
- if (paths == NULL) {
- paths = Lst_Init();
- }
- Lst_AtEnd(paths, dirSearchPath);
+ if (paths == NULL)
+ paths = Lst_New();
+ Lst_AtEnd(paths, &dirSearchPath);
break;
case Main:
- if (!Lst_IsEmpty(create)) {
+ if (!Lst_IsEmpty(&create)) {
specType = Not;
}
break;
@@ -984,9 +981,8 @@ ParseDoDependency (line)
&line[5]);
return;
} else {
- if (paths == NULL) {
- paths = Lst_Init();
- }
+ if (paths == NULL)
+ paths = Lst_New();
Lst_AtEnd(paths, path);
}
}
@@ -1006,20 +1002,22 @@ ParseDoDependency (line)
* use Dir_Destroy in the destruction of the path as the
* Dir module could have added a directory to the path...
*/
- Lst emptyPath = Lst_Init();
+ LIST emptyPath;
+
+ Lst_Init(&emptyPath);
- Dir_Expand(line, emptyPath, curTargs);
+ Dir_Expand(line, &emptyPath, &curTargs);
- Lst_Destroy(emptyPath, Dir_Destroy);
+ Lst_Destroy(&emptyPath, Dir_Destroy);
} else {
/*
* No wildcards, but we want to avoid code duplication,
* so create a list with the word on it.
*/
- Lst_AtEnd(curTargs, line);
+ Lst_AtEnd(&curTargs, line);
}
- while((targName = (char *)Lst_DeQueue(curTargs)) != NULL) {
+ while((targName = (char *)Lst_DeQueue(&curTargs)) != NULL) {
if (!Suff_IsTransform (targName)) {
gn = Targ_FindNode (targName, TARG_CREATE);
} else {
@@ -1058,10 +1056,8 @@ ParseDoDependency (line)
line = cp;
} while ((*line != '!') && (*line != ':') && *line);
- /*
- * Don't need the list of target names anymore...
- */
- Lst_Destroy(curTargs, NOFREE);
+ /* Don't need the list of target names any more */
+ Lst_Destroy(&curTargs, NOFREE);
if (!Lst_IsEmpty(targets)) {
switch(specType) {
@@ -1227,9 +1223,8 @@ ParseDoDependency (line)
}
line = cp;
}
- if (paths) {
- Lst_Destroy(paths, NOFREE);
- }
+ if (paths)
+ Lst_Delete(paths, NOFREE);
} else {
while (*line) {
/*
@@ -1253,17 +1248,19 @@ ParseDoDependency (line)
if (*cp == '(') {
GNode *gn;
+ LIST sources; /* list of archive source names after
+ * expansion */
- sources = Lst_Init();
- if (Arch_ParseArchive (&line, sources, VAR_CMD) != SUCCESS) {
+ Lst_Init(&sources);
+ if (Arch_ParseArchive(&line, &sources, VAR_CMD) != SUCCESS) {
Parse_Error (PARSE_FATAL,
"Error in source archive spec \"%s\"", line);
return;
}
- while ((gn = (GNode *)Lst_DeQueue(sources)) != NULL)
- ParseDoSrc(tOp, gn->name, curSrcs);
- Lst_Destroy(sources, NOFREE);
+ while ((gn = (GNode *)Lst_DeQueue(&sources)) != NULL)
+ ParseDoSrc(tOp, gn->name, &curSrcs);
+ Lst_Destroy(&sources, NOFREE);
cp = line;
} else {
if (*cp) {
@@ -1271,7 +1268,7 @@ ParseDoDependency (line)
cp += 1;
}
- ParseDoSrc (tOp, line, curSrcs);
+ ParseDoSrc(tOp, line, &curSrcs);
}
while (*cp && isspace (*cp)) {
cp++;
@@ -1290,10 +1287,8 @@ ParseDoDependency (line)
Lst_Find(targets, ParseFindMain, NULL);
}
- /*
- * Finally, destroy the list of sources
- */
- Lst_Destroy(curSrcs, NOFREE);
+ /* Finally, destroy the list of sources. */
+ Lst_Destroy(&curSrcs, NOFREE);
}
/*-
@@ -1574,7 +1569,7 @@ ParseAddCmd(gnp, cmd)
GNode *gn = (GNode *)gnp;
/* if target already supplied, ignore commands */
if (!(gn->type & OP_HAS_COMMANDS)) {
- Lst_AtEnd(gn->commands, cmd);
+ Lst_AtEnd(&gn->commands, cmd);
if (!gn->lineno) {
gn->lineno = Parse_Getlineno();
gn->fname = Parse_Getfilename();
@@ -1603,7 +1598,7 @@ ParseHasCommands(gnp)
void *gnp; /* Node to examine */
{
GNode *gn = (GNode *) gnp;
- if (!Lst_IsEmpty(gn->commands)) {
+ if (!Lst_IsEmpty(&gn->commands)) {
gn->type |= OP_HAS_COMMANDS;
}
}
@@ -1623,10 +1618,10 @@ ParseHasCommands(gnp)
*-----------------------------------------------------------------------
*/
void
-Parse_AddIncludeDir (dir)
+Parse_AddIncludeDir(dir)
char *dir; /* The name of the directory to add */
{
- Dir_AddDir (parseIncPath, dir);
+ Dir_AddDir(&parseIncPath, dir);
}
/*-
@@ -1731,9 +1726,9 @@ ParseDoInclude (file)
newName = estrdup(file);
else
newName = str_concat (Fname, file, STR_ADDSLASH);
- fullname = Dir_FindFile (newName, parseIncPath);
+ fullname = Dir_FindFile(newName, &parseIncPath);
if (fullname == (char *)NULL) {
- fullname = Dir_FindFile(newName, dirSearchPath);
+ fullname = Dir_FindFile(newName, &dirSearchPath);
}
free (newName);
*prefEnd = '/';
@@ -1752,9 +1747,9 @@ ParseDoInclude (file)
* then on the .PATH search path, if not found in a -I directory.
* XXX: Suffix specific?
*/
- fullname = Dir_FindFile (file, parseIncPath);
+ fullname = Dir_FindFile(file, &parseIncPath);
if (fullname == (char *)NULL) {
- fullname = Dir_FindFile(file, dirSearchPath);
+ fullname = Dir_FindFile(file, &dirSearchPath);
}
}
@@ -1763,7 +1758,7 @@ ParseDoInclude (file)
* Still haven't found the makefile. Look for it on the system
* path as a last resort.
*/
- fullname = Dir_FindFile(file, sysIncPath);
+ fullname = Dir_FindFile(file, &sysIncPath);
}
if (fullname == (char *) NULL) {
@@ -1788,7 +1783,7 @@ ParseDoInclude (file)
oldFile->p = curPTR;
oldFile->lineno = lineno;
- Lst_AtFront(includes, oldFile);
+ Lst_AtFront(&includes, oldFile);
/*
* Once the previous state has been saved, we can get down to reading
@@ -1798,7 +1793,7 @@ ParseDoInclude (file)
*/
fname = fullname;
#ifdef CLEANUP
- Lst_AtEnd(fileNames, fname);
+ Lst_AtEnd(&fileNames, fname);
#endif
lineno = 0;
@@ -1843,7 +1838,7 @@ Parse_FromString(str, newlineno)
oldFile->F = curFILE;
oldFile->p = curPTR;
- Lst_AtFront(includes, oldFile);
+ Lst_AtFront(&includes, oldFile);
curFILE = NULL;
curPTR = (PTR *) emalloc (sizeof (PTR));
@@ -1923,10 +1918,9 @@ ParseTraditionalInclude (file)
*prefEnd = '\0';
newName = str_concat (fname, file, STR_ADDSLASH);
- fullname = Dir_FindFile (newName, parseIncPath);
- if (fullname == (char *)NULL) {
- fullname = Dir_FindFile(newName, dirSearchPath);
- }
+ fullname = Dir_FindFile(newName, &parseIncPath);
+ if (fullname == NULL)
+ fullname = Dir_FindFile(newName, &dirSearchPath);
free (newName);
*prefEnd = '/';
} else {
@@ -1940,10 +1934,9 @@ ParseTraditionalInclude (file)
* then on the .PATH search path, if not found in a -I directory.
* XXX: Suffix specific?
*/
- fullname = Dir_FindFile (file, parseIncPath);
- if (fullname == (char *)NULL) {
- fullname = Dir_FindFile(file, dirSearchPath);
- }
+ fullname = Dir_FindFile(file, &parseIncPath);
+ if (fullname == NULL)
+ fullname = Dir_FindFile(file, &dirSearchPath);
}
if (fullname == (char *)NULL) {
@@ -1951,7 +1944,7 @@ ParseTraditionalInclude (file)
* Still haven't found the makefile. Look for it on the system
* path as a last resort.
*/
- fullname = Dir_FindFile(file, sysIncPath);
+ fullname = Dir_FindFile(file, &sysIncPath);
}
if (fullname == (char *) NULL) {
@@ -1973,7 +1966,7 @@ ParseTraditionalInclude (file)
oldFile->p = curPTR;
oldFile->lineno = lineno;
- Lst_AtFront(includes, oldFile);
+ Lst_AtFront(&includes, oldFile);
/*
* Once the previous state has been saved, we can get down to reading
@@ -1983,7 +1976,7 @@ ParseTraditionalInclude (file)
*/
fname = fullname;
#ifdef CLEANUP
- lst_AtEnd(fileNames, fname);
+ Lst_AtEnd(&fileNames, fname);
#endif
lineno = 0;
@@ -2020,7 +2013,7 @@ ParseEOF (opened)
{
IFile *ifile; /* the state on the top of the includes stack */
- if ((ifile = (IFile *)Lst_DeQueue(includes)) == NULL)
+ if ((ifile = (IFile *)Lst_DeQueue(&includes)) == NULL)
return DONE;
fname = ifile->fname;
lineno = ifile->lineno;
@@ -2414,7 +2407,7 @@ ParseFinishLine()
{
if (inLine) {
Lst_Every(targets, Suff_EndTransform);
- Lst_Destroy(targets, ParseHasCommands);
+ Lst_Delete(targets, ParseHasCommands);
targets = NULL;
inLine = FALSE;
}
@@ -2447,7 +2440,7 @@ Parse_File(name, stream)
inLine = FALSE;
fname = estrdup(name);
#ifdef CLEANUP
- Lst_AtEnd(fileNames, fname);
+ Lst_AtEnd(&fileNames, fname);
#endif
curFILE = stream;
lineno = 0;
@@ -2508,7 +2501,7 @@ Parse_File(name, stream)
*/
Lst_ForEach(targets, ParseAddCmd, cp);
#ifdef CLEANUP
- Lst_AtEnd(targCmds, line);
+ Lst_AtEnd(&targCmds, line);
#endif
continue;
} else {
@@ -2582,9 +2575,9 @@ Parse_File(name, stream)
* Need a non-circular list for the target nodes
*/
if (targets)
- Lst_Destroy(targets, NOFREE);
+ Lst_Delete(targets, NOFREE);
- targets = Lst_Init();
+ targets = Lst_New();
inLine = TRUE;
ParseDoDependency (line);
@@ -2618,23 +2611,20 @@ Parse_File(name, stream)
* Parse_Init --
* initialize the parsing module
*
- * Results:
- * none
- *
* Side Effects:
* the parseIncPath list is initialized...
*---------------------------------------------------------------------
*/
void
-Parse_Init ()
+Parse_Init()
{
mainNode = NULL;
- parseIncPath = Lst_Init();
- sysIncPath = Lst_Init();
- includes = Lst_Init();
+ Lst_Init(&parseIncPath);
+ Lst_Init(&sysIncPath);
+ Lst_Init(&includes);
#ifdef CLEANUP
- targCmds = Lst_Init();
- fileNames = Lst_Init();
+ Lst_Init(&targCmds);
+ Lst_Init(&fileNames);
#endif
}
@@ -2642,13 +2632,13 @@ void
Parse_End()
{
#ifdef CLEANUP
- Lst_Destroy(targCmds, (SimpleProc)free);
- Lst_Destroy(fileNames, (void (*) __P((ClientData))) free);
+ Lst_Destroy(&targCmds, (SimpleProc)free);
+ Lst_Destroy(&fileNames, (void (*) __P((ClientData))) free);
if (targets)
- Lst_Destroy(targets, NOFREE);
- Lst_Destroy(sysIncPath, Dir_Destroy);
- Lst_Destroy(parseIncPath, Dir_Destroy);
- Lst_Destroy(includes, NOFREE); /* Should be empty now */
+ Lst_Delete(targets, NOFREE);
+ Lst_Destroy(&sysIncPath, Dir_Destroy);
+ Lst_Destroy(&parseIncPath, Dir_Destroy);
+ Lst_Destroy(&includes, NOFREE); /* Should be empty now */
#endif
}
@@ -2672,14 +2662,14 @@ Parse_MainName()
{
Lst listmain; /* result list */
- listmain = Lst_Init();
+ listmain = Lst_New();
if (mainNode == NULL) {
Punt ("no target to make.");
/*NOTREACHED*/
} else if (mainNode->type & OP_DOUBLEDEP) {
Lst_AtEnd(listmain, mainNode);
- Lst_Concat(listmain, mainNode->cohorts, LST_CONCNEW);
+ Lst_Concat(listmain, &mainNode->cohorts, LST_CONCNEW);
}
else
Lst_AtEnd(listmain, mainNode);
diff --git a/usr.bin/make/suff.c b/usr.bin/make/suff.c
index 96315279702..d494fe96c4d 100644
--- a/usr.bin/make/suff.c
+++ b/usr.bin/make/suff.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: suff.c,v 1.28 2000/06/10 01:41:06 espie Exp $ */
+/* $OpenBSD: suff.c,v 1.29 2000/06/17 14:38:19 espie Exp $ */
/* $NetBSD: suff.c,v 1.13 1996/11/06 17:59:25 christos Exp $ */
/*
@@ -43,7 +43,7 @@
#if 0
static char sccsid[] = "@(#)suff.c 8.4 (Berkeley) 3/21/94";
#else
-static char rcsid[] = "$OpenBSD: suff.c,v 1.28 2000/06/10 01:41:06 espie Exp $";
+static char rcsid[] = "$OpenBSD: suff.c,v 1.29 2000/06/17 14:38:19 espie Exp $";
#endif
#endif /* not lint */
@@ -105,10 +105,10 @@ static char rcsid[] = "$OpenBSD: suff.c,v 1.28 2000/06/10 01:41:06 espie Exp $";
static Lst sufflist; /* Lst of suffixes */
#ifdef CLEANUP
-static Lst suffClean; /* Lst of suffixes to be cleaned */
+static LIST suffClean; /* Lst of suffixes to be cleaned */
#endif
-static Lst srclist; /* Lst of sources */
-static Lst transforms; /* Lst of transformation rules */
+static LIST srclist; /* Lst of sources */
+static LIST transforms; /* Lst of transformation rules */
static int sNum = 0; /* Counter for assigning suffix numbers */
@@ -125,9 +125,9 @@ typedef struct _Suff {
Lst searchPath; /* The path along which files of this suffix
* may be found */
int sNum; /* The suffix number */
- Lst parents; /* Suffixes we have a transformation to */
- Lst children; /* Suffixes we have a transformation from */
- Lst ref; /* List of lists this suffix is referenced */
+ LIST parents; /* Suffixes we have a transformation to */
+ LIST children; /* Suffixes we have a transformation from */
+ LIST ref; /* List of lists this suffix is referenced */
} Suff;
/*
@@ -142,7 +142,7 @@ typedef struct _Src {
int children; /* Count of existing children (so we don't free
* this thing too early or never nuke it) */
#ifdef DEBUG_SRC
- Lst cp; /* Debug; children list */
+ LIST cp; /* Debug; children list */
#endif
} Src;
@@ -369,10 +369,10 @@ SuffFree(sp)
if (s == emptySuff)
emptySuff = NULL;
- Lst_Destroy(s->ref, NOFREE);
- Lst_Destroy(s->children, NOFREE);
- Lst_Destroy(s->parents, NOFREE);
- Lst_Destroy(s->searchPath, Dir_Destroy);
+ Lst_Destroy(&s->ref, NOFREE);
+ Lst_Destroy(&s->children, NOFREE);
+ Lst_Destroy(&s->parents, NOFREE);
+ Lst_Delete(s->searchPath, Dir_Destroy);
free(s->name);
free(s);
@@ -432,13 +432,13 @@ SuffInsert (l, s)
printf("at end of list\n");
}
Lst_AtEnd(l, s);
- Lst_AtEnd(s->ref, l);
+ Lst_AtEnd(&s->ref, l);
} else if (s2->sNum != s->sNum) {
if (DEBUG(SUFF)) {
printf("before %s(%d)\n", s2->name, s2->sNum);
}
Lst_Insert(l, ln, s);
- Lst_AtEnd(s->ref, l);
+ Lst_AtEnd(&s->ref, l);
} else if (DEBUG(SUFF)) {
printf("already there\n");
}
@@ -465,9 +465,9 @@ void
Suff_ClearSuffixes ()
{
#ifdef CLEANUP
- Lst_Concat(suffClean, sufflist, LST_CONCLINK);
+ Lst_Concat(&suffClean, sufflist, LST_CONCLINK);
#endif
- sufflist = Lst_Init();
+ sufflist = Lst_New();
sNum = 0;
suffNull = emptySuff;
}
@@ -598,14 +598,14 @@ Suff_AddTransform (line)
*t; /* target suffix */
LstNode ln; /* Node for existing transformation */
- ln = Lst_Find(transforms, SuffGNHasNameP, line);
+ ln = Lst_Find(&transforms, SuffGNHasNameP, line);
if (ln == NULL) {
/*
* Make a new graph node for the transformation. It will be filled in
* by the Parse module.
*/
gn = Targ_NewGN (line);
- Lst_AtEnd(transforms, gn);
+ Lst_AtEnd(&transforms, gn);
} else {
/*
* New specification for transformation rule. Just nuke the old list
@@ -614,10 +614,10 @@ Suff_AddTransform (line)
* attached to several different transformations.
*/
gn = (GNode *) Lst_Datum (ln);
- Lst_Destroy(gn->commands, NOFREE);
- Lst_Destroy(gn->children, NOFREE);
- gn->commands = Lst_Init();
- gn->children = Lst_Init();
+ Lst_Destroy(&gn->commands, NOFREE);
+ Lst_Destroy(&gn->children, NOFREE);
+ Lst_Init(&gn->commands);
+ Lst_Init(&gn->children);
}
gn->type = OP_TRANSFORM;
@@ -631,8 +631,8 @@ Suff_AddTransform (line)
printf("defining transformation from `%s' to `%s'\n",
s->name, t->name);
}
- SuffInsert (t->children, s);
- SuffInsert (s->parents, t);
+ SuffInsert(&t->children, s);
+ SuffInsert(&s->parents, t);
return (gn);
}
@@ -657,8 +657,8 @@ Suff_EndTransform(gnp)
{
GNode *gn = (GNode *)gnp;
- if ((gn->type & OP_TRANSFORM) && Lst_IsEmpty(gn->commands) &&
- Lst_IsEmpty(gn->children))
+ if ((gn->type & OP_TRANSFORM) && Lst_IsEmpty(&gn->commands) &&
+ Lst_IsEmpty(&gn->children))
{
Suff *s, *t;
@@ -675,12 +675,12 @@ Suff_EndTransform(gnp)
* We'll be called twice when the next target is seen, but .c and .o
* are only linked once...
*/
- SuffRemove(t->children, s);
+ SuffRemove(&t->children, s);
/*
* Remove the target from the source's parents list
*/
- SuffRemove(s->parents, t);
+ SuffRemove(&s->parents, t);
} else if ((gn->type & OP_TRANSFORM) && DEBUG(SUFF)) {
printf("transformation %s complete\n", gn->name);
}
@@ -725,8 +725,8 @@ SuffRebuildGraph(transformp, sp)
* else.
*/
s2 = (Suff *)Lst_Datum(ln);
- SuffInsert(s2->children, s);
- SuffInsert(s->parents, s2);
+ SuffInsert(&s2->children, s);
+ SuffInsert(&s->parents, s2);
return;
}
}
@@ -750,8 +750,8 @@ SuffRebuildGraph(transformp, sp)
* Found it -- establish the proper relationship
*/
s2 = (Suff *)Lst_Datum(ln);
- SuffInsert(s->children, s2);
- SuffInsert(s2->parents, s);
+ SuffInsert(&s->children, s2);
+ SuffInsert(&s2->parents, s);
}
}
}
@@ -783,10 +783,10 @@ Suff_AddSuffix (str)
s->name = estrdup (str);
s->nameLen = strlen (s->name);
- s->searchPath = Lst_Init();
- s->children = Lst_Init();
- s->parents = Lst_Init();
- s->ref = Lst_Init();
+ s->searchPath = Lst_New();
+ Lst_Init(&s->children);
+ Lst_Init(&s->parents);
+ Lst_Init(&s->ref);
s->sNum = sNum++;
s->flags = 0;
@@ -795,7 +795,7 @@ Suff_AddSuffix (str)
* Look for any existing transformations from or to this suffix.
* XXX: Only do this after a Suff_ClearSuffixes?
*/
- Lst_ForEach(transforms, SuffRebuildGraph, s);
+ Lst_ForEach(&transforms, SuffRebuildGraph, s);
}
}
@@ -852,43 +852,43 @@ Suff_DoPaths()
register Suff *s;
register LstNode ln;
char *ptr;
- Lst inIncludes; /* Cumulative .INCLUDES path */
- Lst inLibs; /* Cumulative .LIBS path */
+ LIST inIncludes; /* Cumulative .INCLUDES path */
+ LIST inLibs; /* Cumulative .LIBS path */
if (Lst_Open (sufflist) == FAILURE) {
return;
}
- inIncludes = Lst_Init();
- inLibs = Lst_Init();
+ Lst_Init(&inIncludes);
+ Lst_Init(&inLibs);
while ((ln = Lst_Next (sufflist)) != NULL) {
s = (Suff *) Lst_Datum (ln);
if (!Lst_IsEmpty (s->searchPath)) {
#ifdef INCLUDES
if (s->flags & SUFF_INCLUDE) {
- Dir_Concat(inIncludes, s->searchPath);
+ Dir_Concat(&inIncludes, s->searchPath);
}
#endif /* INCLUDES */
#ifdef LIBRARIES
if (s->flags & SUFF_LIBRARY) {
- Dir_Concat(inLibs, s->searchPath);
+ Dir_Concat(&inLibs, s->searchPath);
}
#endif /* LIBRARIES */
- Dir_Concat(s->searchPath, dirSearchPath);
+ Dir_Concat(s->searchPath, &dirSearchPath);
} else {
- Lst_Destroy(s->searchPath, Dir_Destroy);
- s->searchPath = Lst_Duplicate(dirSearchPath, Dir_CopyDir);
+ Lst_Delete(s->searchPath, Dir_Destroy);
+ s->searchPath = Lst_Duplicate(&dirSearchPath, Dir_CopyDir);
}
}
- Var_Set(".INCLUDES", ptr = Dir_MakeFlags("-I", inIncludes), VAR_GLOBAL);
+ Var_Set(".INCLUDES", ptr = Dir_MakeFlags("-I", &inIncludes), VAR_GLOBAL);
free(ptr);
- Var_Set(".LIBS", ptr = Dir_MakeFlags("-L", inLibs), VAR_GLOBAL);
+ Var_Set(".LIBS", ptr = Dir_MakeFlags("-L", &inLibs), VAR_GLOBAL);
free(ptr);
- Lst_Destroy(inIncludes, Dir_Destroy);
- Lst_Destroy(inLibs, Dir_Destroy);
+ Lst_Destroy(&inIncludes, Dir_Destroy);
+ Lst_Destroy(&inLibs, Dir_Destroy);
Lst_Close (sufflist);
}
@@ -993,8 +993,8 @@ SuffAddSrc(sp, lsp)
targ->children += 1;
Lst_AtEnd(ls->l, s2);
#ifdef DEBUG_SRC
- s2->cp = Lst_Init();
- Lst_AtEnd(targ->cp, s2);
+ Lst_Init(&s2->cp);
+ Lst_AtEnd(&targ->cp, s2);
printf("1 add %x %x to %x:", targ, s2, ls->l);
Lst_Every(ls->l, PrintAddr);
printf("\n");
@@ -1010,8 +1010,8 @@ SuffAddSrc(sp, lsp)
targ->children += 1;
Lst_AtEnd(ls->l, s2);
#ifdef DEBUG_SRC
- s2->cp = Lst_Init();
- Lst_AtEnd(targ->cp, s2);
+ Lst_Init(&s2->cp);
+ Lst_AtEnd(&targ->cp, s2);
printf("2 add %x %x to %x:", targ, s2, ls->l);
Lst_Every(ls->l, PrintAddr);
printf("\n");
@@ -1040,7 +1040,7 @@ SuffAddLevel (l, targ)
ls.s = targ;
ls.l = l;
- Lst_ForEach(targ->suff->children, SuffAddSrc, &ls);
+ Lst_ForEach(&targ->suff->children, SuffAddSrc, &ls);
}
/*-
@@ -1081,15 +1081,15 @@ SuffRemoveSrc (l)
free(s->pref);
else {
#ifdef DEBUG_SRC
- LstNode ln = Lst_Member(s->parent->cp, s);
+ LstNode ln = Lst_Member(&s->parent->cp, s);
if (ln != NULL)
- Lst_Remove(s->parent->cp, ln);
+ Lst_Remove(&s->parent->cp, ln);
#endif
--s->parent->children;
}
#ifdef DEBUG_SRC
printf("free: [l=%x] p=%x %d\n", l, s, s->children);
- Lst_Destroy(s->cp, NOFREE);
+ Lst_Destroy(&s->cp, NOFREE);
#endif
Lst_Remove(l, ln);
free(s);
@@ -1100,7 +1100,7 @@ SuffRemoveSrc (l)
#ifdef DEBUG_SRC
else {
printf("keep: [l=%x] p=%x %d: ", l, s, s->children);
- Lst_Every(s->cp, PrintAddr);
+ Lst_Every(&s->cp, PrintAddr);
printf("\n");
}
#endif
@@ -1203,10 +1203,10 @@ SuffFindCmds (targ, slst)
char *cp;
t = targ->node;
- (void) Lst_Open (t->children);
+ (void) Lst_Open(&t->children);
prefLen = strlen (targ->pref);
- while ((ln = Lst_Next (t->children)) != NULL) {
+ while ((ln = Lst_Next(&t->children)) != NULL) {
s = (GNode *)Lst_Datum (ln);
cp = strrchr (s->name, '/');
@@ -1230,7 +1230,7 @@ SuffFindCmds (targ, slst)
*/
suff = (Suff *)Lst_Datum (ln);
- if (Lst_Member(suff->parents, targ->suff) != NULL)
+ if (Lst_Member(&suff->parents, targ->suff) != NULL)
{
/*
* Hot Damn! Create a new Src structure to describe
@@ -1247,9 +1247,9 @@ SuffFindCmds (targ, slst)
ret->children = 0;
targ->children += 1;
#ifdef DEBUG_SRC
- ret->cp = Lst_Init();
+ Lst_Init(&ret->cp);
printf("3 add %x %x\n", targ, ret);
- Lst_AtEnd(targ->cp, ret);
+ Lst_AtEnd(&targ->cp, ret);
#endif
Lst_AtEnd(slst, ret);
if (DEBUG(SUFF)) {
@@ -1260,7 +1260,7 @@ SuffFindCmds (targ, slst)
}
}
}
- Lst_Close (t->children);
+ Lst_Close(&t->children);
return ((Src *)NULL);
}
@@ -1293,7 +1293,7 @@ SuffExpandChildren(cgnp, pgnp)
* New nodes effectively take the place of the child, so place them
* after the child
*/
- prevLN = Lst_Member(pgn->children, cgn);
+ prevLN = Lst_Member(&pgn->children, cgn);
/*
* First do variable expansion -- this takes precedence over
@@ -1307,8 +1307,9 @@ SuffExpandChildren(cgnp, pgnp)
cp = Var_Subst(cgn->name, pgn, TRUE);
if (cp != NULL) {
- Lst members = Lst_Init();
+ LIST members;
+ Lst_Init(&members);
if (cgn->type & OP_ARCHV) {
/*
* Node was an archive(member) target, so we want to call
@@ -1317,7 +1318,7 @@ SuffExpandChildren(cgnp, pgnp)
*/
char *sacrifice = cp;
- (void)Arch_ParseArchive(&sacrifice, members, pgn);
+ (void)Arch_ParseArchive(&sacrifice, &members, pgn);
} else {
/*
* Break the result into a vector of strings whose nodes
@@ -1339,7 +1340,7 @@ SuffExpandChildren(cgnp, pgnp)
*/
*cp++ = '\0';
gn = Targ_FindNode(start, TARG_CREATE);
- Lst_AtEnd(members, gn);
+ Lst_AtEnd(&members, gn);
while (*cp == ' ' || *cp == '\t') {
cp++;
}
@@ -1376,7 +1377,7 @@ SuffExpandChildren(cgnp, pgnp)
* Stuff left over -- add it to the list too
*/
gn = Targ_FindNode(start, TARG_CREATE);
- Lst_AtEnd(members, gn);
+ Lst_AtEnd(&members, gn);
}
/*
* Point cp back at the beginning again so the variable value
@@ -1384,36 +1385,32 @@ SuffExpandChildren(cgnp, pgnp)
*/
cp = initcp;
}
- /*
- * Add all elements of the members list to the parent node.
- */
- while((gn = (GNode *)Lst_DeQueue(members)) != NULL) {
+ /* Add all elements of the members list to the parent node. */
+ while((gn = (GNode *)Lst_DeQueue(&members)) != NULL) {
if (DEBUG(SUFF))
printf("%s...", gn->name);
- if (Lst_Member(pgn->children, gn) == NULL) {
- Lst_Append(pgn->children, prevLN, gn);
+ if (Lst_Member(&pgn->children, gn) == NULL) {
+ Lst_Append(&pgn->children, prevLN, gn);
prevLN = Lst_Succ(prevLN);
- Lst_AtEnd(gn->parents, pgn);
+ Lst_AtEnd(&gn->parents, pgn);
pgn->unmade++;
}
}
- Lst_Destroy(members, NOFREE);
- /*
- * Free the result
- */
+ Lst_Destroy(&members, NOFREE);
+ /* Free the result */
free(cp);
}
/*
* Now the source is expanded, remove it from the list of children to
* keep it from being processed.
*/
- ln = Lst_Member(pgn->children, cgn);
+ ln = Lst_Member(&pgn->children, cgn);
pgn->unmade--;
- Lst_Remove(pgn->children, ln);
+ Lst_Remove(&pgn->children, ln);
if (DEBUG(SUFF))
printf("\n");
} else if (Dir_HasWildcards(cgn->name)) {
- Lst exp; /* List of expansions */
+ LIST exp; /* List of expansions */
Lst path; /* Search path along which to expand */
/*
@@ -1440,17 +1437,15 @@ SuffExpandChildren(cgnp, pgnp)
/*
* Use default search path
*/
- path = dirSearchPath;
+ path = &dirSearchPath;
}
- /*
- * Expand the word along the chosen path
- */
- exp = Lst_Init();
- Dir_Expand(cgn->name, path, exp);
+ /* Expand the word along the chosen path */
+ Lst_Init(&exp);
+ Dir_Expand(cgn->name, path, &exp);
/* Fetch next expansion off the list and find its GNode. */
- while ((cp = (char *)Lst_DeQueue(exp)) != NULL) {
+ while ((cp = (char *)Lst_DeQueue(&exp)) != NULL) {
if (DEBUG(SUFF))
printf("%s...", cp);
gn = Targ_FindNode(cp, TARG_CREATE);
@@ -1459,26 +1454,24 @@ SuffExpandChildren(cgnp, pgnp)
* If gn isn't already a child of the parent, make it so and
* up the parent's count of unmade children.
*/
- if (Lst_Member(pgn->children, gn) == NULL) {
- Lst_Append(pgn->children, prevLN, gn);
+ if (Lst_Member(&pgn->children, gn) == NULL) {
+ Lst_Append(&pgn->children, prevLN, gn);
prevLN = Lst_Succ(prevLN);
- Lst_AtEnd(gn->parents, pgn);
+ Lst_AtEnd(&gn->parents, pgn);
pgn->unmade++;
}
}
- /*
- * Nuke what's left of the list
- */
- Lst_Destroy(exp, NOFREE);
+ /* Nuke what's left of the list. */
+ Lst_Destroy(&exp, NOFREE);
/*
* Now the source is expanded, remove it from the list of children to
* keep it from being processed.
*/
- ln = Lst_Member(pgn->children, cgn);
+ ln = Lst_Member(&pgn->children, cgn);
pgn->unmade--;
- Lst_Remove(pgn->children, ln);
+ Lst_Remove(&pgn->children, ln);
if (DEBUG(SUFF))
printf("\n");
}
@@ -1513,13 +1506,13 @@ SuffApplyTransform(tGn, sGn, t, s)
char *tname; /* Name of transformation rule */
GNode *gn; /* Node for same */
- if (Lst_Member(tGn->children, sGn) == NULL) {
+ if (Lst_Member(&tGn->children, sGn) == NULL) {
/*
* Not already linked, so form the proper links between the
* target and source.
*/
- Lst_AtEnd(tGn->children, sGn);
- Lst_AtEnd(sGn->parents, tGn);
+ Lst_AtEnd(&tGn->children, sGn);
+ Lst_AtEnd(&sGn->parents, tGn);
tGn->unmade += 1;
}
@@ -1530,16 +1523,16 @@ SuffApplyTransform(tGn, sGn, t, s)
* 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)) {
+ for (ln=Lst_First(&sGn->cohorts); ln != NULL; ln=Lst_Succ(ln)) {
gn = (GNode *)Lst_Datum(ln);
- if (Lst_Member(tGn->children, gn) == NULL) {
+ if (Lst_Member(&tGn->children, gn) == NULL) {
/*
* Not already linked, so form the proper links between the
* target and source.
*/
- Lst_AtEnd(tGn->children, gn);
- Lst_AtEnd(gn->parents, tGn);
+ Lst_AtEnd(&tGn->children, gn);
+ Lst_AtEnd(&gn->parents, tGn);
tGn->unmade += 1;
}
}
@@ -1548,7 +1541,7 @@ SuffApplyTransform(tGn, sGn, t, s)
* Locate the transformation rule itself
*/
tname = str_concat(s->name, t->name, 0);
- ln = Lst_Find(transforms, SuffGNHasNameP, tname);
+ ln = Lst_Find(&transforms, SuffGNHasNameP, tname);
free(tname);
if (ln == NULL) {
@@ -1569,7 +1562,7 @@ SuffApplyTransform(tGn, sGn, t, s)
/*
* Record last child for expansion purposes
*/
- ln = Lst_Last(tGn->children);
+ ln = Lst_Last(&tGn->children);
/*
* Pass the buck to Make_HandleUse to apply the rule
@@ -1586,7 +1579,7 @@ SuffApplyTransform(tGn, sGn, t, s)
* 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, tGn);
+ Lst_AtEnd(&sGn->iParents, tGn);
return(TRUE);
}
@@ -1648,9 +1641,9 @@ SuffFindArchiveDeps(gn, slst)
/*
* Create the link between the two nodes right off
*/
- if (Lst_Member(gn->children, mem) == NULL) {
- Lst_AtEnd(gn->children, mem);
- Lst_AtEnd(mem->parents, gn);
+ if (Lst_Member(&gn->children, mem) == NULL) {
+ Lst_AtEnd(&gn->children, mem);
+ Lst_AtEnd(&mem->parents, gn);
gn->unmade += 1;
}
@@ -1692,7 +1685,7 @@ SuffFindArchiveDeps(gn, slst)
/*
* Use first matching suffix...
*/
- ln = Lst_Find(ms->parents, SuffSuffIsSuffixP, eoarch);
+ ln = Lst_Find(&ms->parents, SuffSuffIsSuffixP, eoarch);
if (ln != NULL) {
/*
@@ -1768,8 +1761,8 @@ SuffFindNormalDeps(gn, slst)
* Begin at the beginning...
*/
ln = Lst_First(sufflist);
- srcs = Lst_Init();
- targs = Lst_Init();
+ srcs = Lst_New();
+ targs = Lst_New();
/*
* We're caught in a catch-22 here. On the one hand, we want to use any
@@ -1810,7 +1803,7 @@ SuffFindNormalDeps(gn, slst)
targ->parent = (Src *)NULL;
targ->children = 0;
#ifdef DEBUG_SRC
- targ->cp = Lst_Init();
+ Lst_Init(&targ->cp);
#endif
/*
@@ -1855,14 +1848,14 @@ SuffFindNormalDeps(gn, slst)
targ->children = 0;
targ->pref = estrdup(sopref);
#ifdef DEBUG_SRC
- targ->cp = Lst_Init();
+ Lst_Init(&targ->cp);
#endif
/*
* Only use the default suffix rules if we don't have commands
* or dependencies defined for this gnode
*/
- if (Lst_IsEmpty(gn->commands) && Lst_IsEmpty(gn->children))
+ if (Lst_IsEmpty(&gn->commands) && Lst_IsEmpty(&gn->children))
SuffAddLevel(srcs, targ);
else {
if (DEBUG(SUFF))
@@ -1915,7 +1908,7 @@ SuffFindNormalDeps(gn, slst)
* Now we've got the important local variables set, expand any sources
* that still contain variables or wildcards in their names.
*/
- Lst_ForEach(gn->children, SuffExpandChildren, gn);
+ Lst_ForEach(&gn->children, SuffExpandChildren, gn);
if (targ == NULL) {
if (DEBUG(SUFF)) {
@@ -1929,10 +1922,10 @@ sfnd_abort:
* or [XXX] it has neither children or commands).
*/
if (OP_NOP(gn->type) ||
- (Lst_IsEmpty(gn->children) && Lst_IsEmpty(gn->commands)))
+ (Lst_IsEmpty(&gn->children) && Lst_IsEmpty(&gn->commands)))
{
gn->path = Dir_FindFile(gn->name,
- (targ == NULL ? dirSearchPath :
+ (targ == NULL ? &dirSearchPath :
targ->suff->searchPath));
if (gn->path != NULL) {
char *ptr;
@@ -1999,7 +1992,7 @@ sfnd_abort:
/*
* Check for overriding transformation rule implied by sources
*/
- if (!Lst_IsEmpty(gn->children)) {
+ if (!Lst_IsEmpty(&gn->children)) {
src = SuffFindCmds(targ, slst);
if (src != (Src *)NULL) {
@@ -2128,8 +2121,8 @@ Suff_FindDeps(gn)
GNode *gn;
{
- SuffFindDeps(gn, srclist);
- while (SuffRemoveSrc(srclist))
+ SuffFindDeps(gn, &srclist);
+ while (SuffRemoveSrc(&srclist))
continue;
}
@@ -2241,12 +2234,12 @@ Suff_SetNull(name)
void
Suff_Init ()
{
- sufflist = Lst_Init();
+ sufflist = Lst_New();
#ifdef CLEANUP
- suffClean = Lst_Init();
+ Lst_Init(&suffClean);
#endif
- srclist = Lst_Init();
- transforms = Lst_Init();
+ Lst_Init(&srclist);
+ Lst_Init(&transforms);
sNum = 0;
/*
@@ -2258,11 +2251,11 @@ Suff_Init ()
suffNull->name = estrdup ("");
suffNull->nameLen = 0;
- suffNull->searchPath = Lst_Init();
- Dir_Concat(suffNull->searchPath, dirSearchPath);
- suffNull->children = Lst_Init();
- suffNull->parents = Lst_Init();
- suffNull->ref = Lst_Init();
+ suffNull->searchPath = Lst_New();
+ Dir_Concat(suffNull->searchPath, &dirSearchPath);
+ Lst_Init(&suffNull->children);
+ Lst_Init(&suffNull->parents);
+ Lst_Init(&suffNull->ref);
suffNull->sNum = sNum++;
suffNull->flags = SUFF_NULL;
@@ -2286,12 +2279,12 @@ void
Suff_End()
{
#ifdef CLEANUP
- Lst_Destroy(sufflist, SuffFree);
- Lst_Destroy(suffClean, SuffFree);
+ Lst_Delete(sufflist, SuffFree);
+ Lst_Destroy(&suffClean, SuffFree);
if (suffNull)
SuffFree(suffNull);
- Lst_Destroy(srclist, NOFREE);
- Lst_Destroy(transforms, NOFREE);
+ Lst_Destroy(&srclist, NOFREE);
+ Lst_Destroy(&transforms, NOFREE);
#endif
}
@@ -2335,9 +2328,9 @@ SuffPrintSuff(sp)
}
}
printf("\n#\tTo: ");
- Lst_Every(s->parents, SuffPrintName);
+ Lst_Every(&s->parents, SuffPrintName);
printf("\n#\tFrom: ");
- Lst_Every(s->children, SuffPrintName);
+ Lst_Every(&s->children, SuffPrintName);
printf("\n#\tSearch Path: ");
Dir_PrintPath(s->searchPath);
fputc('\n', stdout);
@@ -2352,7 +2345,7 @@ SuffPrintTrans(tp)
printf("%-16s: ", t->name);
Targ_PrintType(t->type);
fputc('\n', stdout);
- Lst_Every(t->commands, Targ_PrintCmd);
+ Lst_Every(&t->commands, Targ_PrintCmd);
fputc('\n', stdout);
}
@@ -2363,5 +2356,5 @@ Suff_PrintAll()
Lst_Every(sufflist, SuffPrintSuff);
printf("#*** Transformations:\n");
- Lst_Every(transforms, SuffPrintTrans);
+ Lst_Every(&transforms, SuffPrintTrans);
}
diff --git a/usr.bin/make/targ.c b/usr.bin/make/targ.c
index 16c9656b8e7..9b1c24d79d7 100644
--- a/usr.bin/make/targ.c
+++ b/usr.bin/make/targ.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: targ.c,v 1.18 2000/06/10 01:41:06 espie Exp $ */
+/* $OpenBSD: targ.c,v 1.19 2000/06/17 14:38:20 espie Exp $ */
/* $NetBSD: targ.c,v 1.11 1997/02/20 16:51:50 christos Exp $ */
/*
@@ -43,7 +43,7 @@
#if 0
static char sccsid[] = "@(#)targ.c 8.2 (Berkeley) 3/19/94";
#else
-static char *rcsid = "$OpenBSD: targ.c,v 1.18 2000/06/10 01:41:06 espie Exp $";
+static char *rcsid = "$OpenBSD: targ.c,v 1.19 2000/06/17 14:38:20 espie Exp $";
#endif
#endif /* not lint */
@@ -94,9 +94,9 @@ static char *rcsid = "$OpenBSD: targ.c,v 1.18 2000/06/10 01:41:06 espie Exp $";
#include "hash.h"
#include "dir.h"
-static Lst allTargets; /* the list of all targets found so far */
+static LIST allTargets; /* the list of all targets found so far */
#ifdef CLEANUP
-static Lst allGNs; /* List of all the GNodes */
+static LIST allGNs; /* List of all the GNodes */
#endif
static Hash_Table targets; /* a hash table of same */
@@ -122,10 +122,13 @@ static void TargFreeGN __P((void *));
*-----------------------------------------------------------------------
*/
void
-Targ_Init ()
+Targ_Init()
{
- allTargets = Lst_Init();
- Hash_InitTable (&targets, HTSIZE);
+#ifdef CLEANUP
+ Lst_Init(&allGNs);
+#endif
+ Lst_Init(&allTargets);
+ Hash_InitTable(&targets, HTSIZE);
}
/*-
@@ -144,9 +147,8 @@ void
Targ_End ()
{
#ifdef CLEANUP
- Lst_Destroy(allTargets, NOFREE);
- if (allGNs)
- Lst_Destroy(allGNs, TargFreeGN);
+ Lst_Destroy(&allTargets, NOFREE);
+ Lst_Destroy(&allGNs, TargFreeGN);
Hash_DeleteTable(&targets);
#endif
}
@@ -184,22 +186,20 @@ Targ_NewGN (name)
gn->childMade = FALSE;
gn->order = 0;
gn->mtime = gn->cmtime = OUT_OF_DATE;
- gn->iParents = Lst_Init();
- gn->cohorts = Lst_Init();
- gn->parents = Lst_Init();
- gn->children = Lst_Init();
- gn->successors = Lst_Init();
- gn->preds = Lst_Init();
- gn->context = Lst_Init();
+ Lst_Init(&gn->iParents);
+ Lst_Init(&gn->cohorts);
+ Lst_Init(&gn->parents);
+ Lst_Init(&gn->children);
+ Lst_Init(&gn->successors);
+ Lst_Init(&gn->preds);
+ Lst_Init(&gn->context);
gn->lineno = 0;
gn->fname = NULL;
- gn->commands = Lst_Init();
+ Lst_Init(&gn->commands);
gn->suffix = NULL;
#ifdef CLEANUP
- if (allGNs == NULL)
- allGNs = Lst_Init();
- Lst_AtEnd(allGNs, gn);
+ Lst_AtEnd(&allGNs, gn);
#endif
return (gn);
@@ -227,15 +227,14 @@ TargFreeGN(gnp)
free(gn->name);
efree(gn->path);
-
- Lst_Destroy(gn->iParents, NOFREE);
- Lst_Destroy(gn->cohorts, NOFREE);
- Lst_Destroy(gn->parents, NOFREE);
- Lst_Destroy(gn->children, NOFREE);
- Lst_Destroy(gn->successors, NOFREE);
- Lst_Destroy(gn->preds, NOFREE);
- Lst_Destroy(gn->context, NOFREE);
- Lst_Destroy(gn->commands, NOFREE);
+ Lst_Destroy(&gn->iParents, NOFRE);
+ Lst_Destroy(&gn->cohorts, NOFRE);
+ Lst_Destroy(&gn->parents, NOFRE);
+ Lst_Destroy(&gn->children, NOFRE);
+ Lst_Destroy(&gn->successors, NOFRE);
+ Lst_Destroy(&gn->preds, NOFRE);
+ Lst_Destroy(&gn->context, NOFRE);
+ Lst_Destroy(&gn->commands, NOFRE);
free(gn);
}
#endif
@@ -272,7 +271,7 @@ Targ_FindNode (name, flags)
if (isNew) {
gn = Targ_NewGN (name);
Hash_SetValue (he, gn);
- Lst_AtEnd(allTargets, gn);
+ Lst_AtEnd(&allTargets, gn);
}
} else {
he = Hash_FindEntry (&targets, name);
@@ -301,7 +300,7 @@ Targ_FindNode (name, flags)
* -----------------------------------------------------------------------
*/
Lst
-Targ_FindList (names, flags)
+Targ_FindList(names, flags)
Lst names; /* list of names to find */
int flags; /* flags used if no node is found for a given
* name */
@@ -311,7 +310,7 @@ Targ_FindList (names, flags)
register GNode *gn; /* node in tLn */
char *name;
- nodes = Lst_Init();
+ nodes = Lst_New();
if (Lst_Open (names) == FAILURE) {
return (nodes);
@@ -327,7 +326,7 @@ Targ_FindList (names, flags)
*/
Lst_AtEnd(nodes, gn);
if (gn->type & OP_DOUBLEDEP) {
- Lst_Concat(nodes, gn->cohorts, LST_CONCNEW);
+ Lst_Concat(nodes, &gn->cohorts, LST_CONCNEW);
}
} else if (flags == TARG_NOCREATE) {
Error ("\"%s\" -- target unknown.", name);
@@ -563,15 +562,15 @@ TargPrintNode(gnp, passp)
else
printf("# unmade\n");
}
- if (!Lst_IsEmpty (gn->iParents)) {
+ if (!Lst_IsEmpty(&gn->iParents)) {
printf("# implicit parents: ");
- Lst_Every(gn->iParents, TargPrintName);
+ Lst_Every(&gn->iParents, TargPrintName);
fputc('\n', stdout);
}
}
- if (!Lst_IsEmpty (gn->parents)) {
+ if (!Lst_IsEmpty(&gn->parents)) {
printf("# parents: ");
- Lst_Every(gn->parents, TargPrintName);
+ Lst_Every(&gn->parents, TargPrintName);
fputc ('\n', stdout);
}
@@ -585,12 +584,12 @@ TargPrintNode(gnp, passp)
printf(":: "); break;
}
Targ_PrintType(gn->type);
- Lst_Every(gn->children, TargPrintName);
+ Lst_Every(&gn->children, TargPrintName);
fputc('\n', stdout);
- Lst_Every(gn->commands, Targ_PrintCmd);
+ Lst_Every(&gn->commands, Targ_PrintCmd);
printf("\n\n");
if (gn->type & OP_DOUBLEDEP)
- Lst_ForEach(gn->cohorts, TargPrintNode, &pass);
+ Lst_ForEach(&gn->cohorts, TargPrintNode, &pass);
}
}
@@ -632,10 +631,10 @@ Targ_PrintGraph (pass)
* 2 => processing done */
{
printf("#*** Input graph:\n");
- Lst_ForEach(allTargets, TargPrintNode, &pass);
+ Lst_ForEach(&allTargets, TargPrintNode, &pass);
printf("\n\n");
printf("#\n# Files that are only sources:\n");
- Lst_Every(allTargets, TargPrintOnlySrc);
+ Lst_Every(&allTargets, TargPrintOnlySrc);
printf("#*** Global Variables:\n");
Var_Dump (VAR_GLOBAL);
printf("#*** Command-line Variables:\n");
diff --git a/usr.bin/make/var.c b/usr.bin/make/var.c
index 71f0b191565..d13aa3cf980 100644
--- a/usr.bin/make/var.c
+++ b/usr.bin/make/var.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: var.c,v 1.32 2000/06/10 01:41:06 espie Exp $ */
+/* $OpenBSD: var.c,v 1.33 2000/06/17 14:38:20 espie Exp $ */
/* $NetBSD: var.c,v 1.18 1997/03/18 19:24:46 christos Exp $ */
/*
@@ -70,7 +70,7 @@
#if 0
static char sccsid[] = "@(#)var.c 8.3 (Berkeley) 3/19/94";
#else
-static char rcsid[] = "$OpenBSD: var.c,v 1.32 2000/06/10 01:41:06 espie Exp $";
+static char rcsid[] = "$OpenBSD: var.c,v 1.33 2000/06/17 14:38:20 espie Exp $";
#endif
#endif /* not lint */
@@ -159,7 +159,7 @@ GNode *VAR_GLOBAL; /* variables from the makefile */
GNode *VAR_CMD; /* variables defined on the command-line */
static GNode *VAR_ENV; /* variables read from env */
-static Lst allVars; /* List of all variables */
+static LIST allVars; /* List of all variables */
#define FIND_CMD 0x1 /* look in VAR_CMD when searching */
#define FIND_GLOBAL 0x2 /* look in VAR_GLOBAL as well */
@@ -318,16 +318,16 @@ VarFind (name, ctxt, flags)
* look for it in VAR_CMD, VAR_GLOBAL and the environment, in that order,
* depending on the FIND_* flags in 'flags'
*/
- var = Lst_Find(ctxt->context, VarCmp, name);
+ var = Lst_Find(&ctxt->context, VarCmp, name);
if ((var == NULL) && (flags & FIND_CMD) && (ctxt != VAR_CMD))
- var = Lst_Find(VAR_CMD->context, VarCmp, name);
+ var = Lst_Find(&VAR_CMD->context, VarCmp, name);
if (!checkEnvFirst && (var == NULL) && (flags & FIND_GLOBAL) &&
(ctxt != VAR_GLOBAL)) {
- var = Lst_Find(VAR_GLOBAL->context, VarCmp, name);
+ var = Lst_Find(&VAR_GLOBAL->context, VarCmp, name);
}
if ((var == NULL) && (flags & FIND_ENV)) {
- var = Lst_Find(VAR_ENV->context, VarCmp, name);
+ var = Lst_Find(&VAR_ENV->context, VarCmp, name);
if (var == NULL) {
char *env;
@@ -337,7 +337,7 @@ VarFind (name, ctxt, flags)
}
if (var == NULL && checkEnvFirst && (flags & FIND_GLOBAL) &&
(ctxt != VAR_GLOBAL))
- var = Lst_Find(VAR_GLOBAL->context, VarCmp, name);
+ var = Lst_Find(&VAR_GLOBAL->context, VarCmp, name);
if (var == NULL)
return NULL;
else
@@ -377,8 +377,8 @@ VarAdd(name, val, ctxt)
v->flags = 0;
- Lst_AtFront(ctxt->context, v);
- Lst_AtEnd(allVars, v);
+ Lst_AtFront(&ctxt->context, v);
+ Lst_AtEnd(&allVars, v);
if (DEBUG(VAR)) {
printf("%s:%s = %s\n", ctxt->name, name, val);
}
@@ -433,14 +433,14 @@ Var_Delete(name, ctxt)
if (DEBUG(VAR)) {
printf("%s:delete %s\n", ctxt->name, name);
}
- ln = Lst_Find(ctxt->context, VarCmp, name);
+ ln = Lst_Find(&ctxt->context, VarCmp, name);
if (ln != NULL) {
register Var *v;
v = (Var *)Lst_Datum(ln);
- Lst_Remove(ctxt->context, ln);
- ln = Lst_Member(allVars, v);
- Lst_Remove(allVars, ln);
+ Lst_Remove(&ctxt->context, ln);
+ ln = Lst_Member(&allVars, v);
+ Lst_Remove(&allVars, ln);
VarDelete(v);
}
}
@@ -2302,28 +2302,25 @@ Var_GetHead(file)
* Var_Init --
* Initialize the module
*
- * Results:
- * None
- *
* Side Effects:
* The VAR_CMD and VAR_GLOBAL contexts are created
*-----------------------------------------------------------------------
*/
void
-Var_Init ()
+Var_Init()
{
VAR_GLOBAL = Targ_NewGN("Global");
VAR_CMD = Targ_NewGN("Command");
VAR_ENV = Targ_NewGN("Environment");
- allVars = Lst_Init();
+ Lst_Init(&allVars);
}
void
-Var_End ()
+Var_End()
{
- Lst_Destroy(allVars, VarDelete);
+ Lst_Destroy(&allVars, VarDelete);
}
@@ -2347,5 +2344,5 @@ void
Var_Dump (ctxt)
GNode *ctxt;
{
- Lst_Every(ctxt->context, VarPrintVar);
+ Lst_Every(&ctxt->context, VarPrintVar);
}