Module Name: src
Committed By: rillig
Date: Thu Aug 27 06:53:57 UTC 2020
Modified Files:
src/usr.bin/make: compat.c dir.c job.c lst.c lst.h main.c make.c meta.c
parse.c suff.c targ.c
Log Message:
make(1): migrate Lst_ForEach to Lst_ForEachS
Most lists are always valid. Only the "targets" variable may be null in
some cases, probably.
To generate a diff of this commit:
cvs rdiff -u -r1.129 -r1.130 src/usr.bin/make/compat.c
cvs rdiff -u -r1.112 -r1.113 src/usr.bin/make/dir.c
cvs rdiff -u -r1.216 -r1.217 src/usr.bin/make/job.c
cvs rdiff -u -r1.43 -r1.44 src/usr.bin/make/lst.c
cvs rdiff -u -r1.46 -r1.47 src/usr.bin/make/lst.h
cvs rdiff -u -r1.314 -r1.315 src/usr.bin/make/main.c
cvs rdiff -u -r1.125 -r1.126 src/usr.bin/make/make.c
cvs rdiff -u -r1.100 -r1.101 src/usr.bin/make/meta.c
cvs rdiff -u -r1.264 -r1.265 src/usr.bin/make/parse.c
cvs rdiff -u -r1.117 -r1.118 src/usr.bin/make/suff.c
cvs rdiff -u -r1.73 -r1.74 src/usr.bin/make/targ.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/usr.bin/make/compat.c
diff -u src/usr.bin/make/compat.c:1.129 src/usr.bin/make/compat.c:1.130
--- src/usr.bin/make/compat.c:1.129 Sun Aug 23 19:00:19 2020
+++ src/usr.bin/make/compat.c Thu Aug 27 06:53:57 2020
@@ -1,4 +1,4 @@
-/* $NetBSD: compat.c,v 1.129 2020/08/23 19:00:19 rillig Exp $ */
+/* $NetBSD: compat.c,v 1.130 2020/08/27 06:53:57 rillig Exp $ */
/*
* Copyright (c) 1988, 1989, 1990 The Regents of the University of California.
@@ -70,14 +70,14 @@
*/
#ifndef MAKE_NATIVE
-static char rcsid[] = "$NetBSD: compat.c,v 1.129 2020/08/23 19:00:19 rillig Exp $";
+static char rcsid[] = "$NetBSD: compat.c,v 1.130 2020/08/27 06:53:57 rillig Exp $";
#else
#include <sys/cdefs.h>
#ifndef lint
#if 0
static char sccsid[] = "@(#)compat.c 8.2 (Berkeley) 3/19/94";
#else
-__RCSID("$NetBSD: compat.c,v 1.129 2020/08/23 19:00:19 rillig Exp $");
+__RCSID("$NetBSD: compat.c,v 1.130 2020/08/27 06:53:57 rillig Exp $");
#endif
#endif /* not lint */
#endif
@@ -532,7 +532,7 @@ Compat_Make(void *gnp, void *pgnp)
gn->made = BEINGMADE;
if ((gn->type & OP_MADE) == 0)
Suff_FindDeps(gn);
- Lst_ForEach(gn->children, Compat_Make, gn);
+ Lst_ForEachS(gn->children, Compat_Make, gn);
if ((gn->flags & REMAKE) == 0) {
gn->made = ABORTED;
pgn->flags &= ~(unsigned)REMAKE;
@@ -602,7 +602,7 @@ Compat_Make(void *gnp, void *pgnp)
meta_job_start(NULL, gn);
}
#endif
- Lst_ForEach(gn->commands, CompatRunCommand, gn);
+ Lst_ForEachS(gn->commands, CompatRunCommand, gn);
curTarg = NULL;
} else {
Job_Touch(gn, gn->type & OP_SILENT);
@@ -671,7 +671,7 @@ Compat_Make(void *gnp, void *pgnp)
}
cohorts:
- Lst_ForEach(gn->cohorts, Compat_Make, pgnp);
+ Lst_ForEachS(gn->cohorts, Compat_Make, pgnp);
return 0;
}
Index: src/usr.bin/make/dir.c
diff -u src/usr.bin/make/dir.c:1.112 src/usr.bin/make/dir.c:1.113
--- src/usr.bin/make/dir.c:1.112 Thu Aug 27 06:28:44 2020
+++ src/usr.bin/make/dir.c Thu Aug 27 06:53:57 2020
@@ -1,4 +1,4 @@
-/* $NetBSD: dir.c,v 1.112 2020/08/27 06:28:44 rillig Exp $ */
+/* $NetBSD: dir.c,v 1.113 2020/08/27 06:53:57 rillig Exp $ */
/*
* Copyright (c) 1988, 1989, 1990 The Regents of the University of California.
@@ -70,14 +70,14 @@
*/
#ifndef MAKE_NATIVE
-static char rcsid[] = "$NetBSD: dir.c,v 1.112 2020/08/27 06:28:44 rillig Exp $";
+static char rcsid[] = "$NetBSD: dir.c,v 1.113 2020/08/27 06:53:57 rillig Exp $";
#else
#include <sys/cdefs.h>
#ifndef lint
#if 0
static char sccsid[] = "@(#)dir.c 8.2 (Berkeley) 1/2/94";
#else
-__RCSID("$NetBSD: dir.c,v 1.112 2020/08/27 06:28:44 rillig Exp $");
+__RCSID("$NetBSD: dir.c,v 1.113 2020/08/27 06:53:57 rillig Exp $");
#endif
#endif /* not lint */
#endif
@@ -924,7 +924,7 @@ Dir_Expand(const char *word, Lst path, L
}
}
if (DEBUG(DIR)) {
- Lst_ForEach(expansions, DirPrintWord, NULL);
+ Lst_ForEachS(expansions, DirPrintWord, NULL);
fprintf(debug_file, "\n");
}
}
@@ -1811,5 +1811,5 @@ DirPrintDir(void *p, void *dummy MAKE_AT
void
Dir_PrintPath(Lst path)
{
- Lst_ForEach(path, DirPrintDir, NULL);
+ Lst_ForEachS(path, DirPrintDir, NULL);
}
Index: src/usr.bin/make/job.c
diff -u src/usr.bin/make/job.c:1.216 src/usr.bin/make/job.c:1.217
--- src/usr.bin/make/job.c:1.216 Thu Aug 27 06:31:46 2020
+++ src/usr.bin/make/job.c Thu Aug 27 06:53:57 2020
@@ -1,4 +1,4 @@
-/* $NetBSD: job.c,v 1.216 2020/08/27 06:31:46 rillig Exp $ */
+/* $NetBSD: job.c,v 1.217 2020/08/27 06:53:57 rillig Exp $ */
/*
* Copyright (c) 1988, 1989, 1990 The Regents of the University of California.
@@ -70,14 +70,14 @@
*/
#ifndef MAKE_NATIVE
-static char rcsid[] = "$NetBSD: job.c,v 1.216 2020/08/27 06:31:46 rillig Exp $";
+static char rcsid[] = "$NetBSD: job.c,v 1.217 2020/08/27 06:53:57 rillig Exp $";
#else
#include <sys/cdefs.h>
#ifndef lint
#if 0
static char sccsid[] = "@(#)job.c 8.2 (Berkeley) 3/19/94";
#else
-__RCSID("$NetBSD: job.c,v 1.216 2020/08/27 06:31:46 rillig Exp $");
+__RCSID("$NetBSD: job.c,v 1.217 2020/08/27 06:53:57 rillig Exp $");
#endif
#endif /* not lint */
#endif
@@ -1655,7 +1655,7 @@ JobStart(GNode *gn, int flags)
* We can do all the commands at once. hooray for sanity
*/
numCommands = 0;
- Lst_ForEach(gn->commands, JobPrintCommand, job);
+ Lst_ForEachS(gn->commands, JobPrintCommand, job);
/*
* If we didn't print out any commands to the shell script,
@@ -1682,7 +1682,7 @@ JobStart(GNode *gn, int flags)
* doesn't do any harm in this case and may do some good.
*/
if (cmdsOK) {
- Lst_ForEach(gn->commands, JobPrintCommand, job);
+ Lst_ForEachS(gn->commands, JobPrintCommand, job);
}
/*
* Don't execute the shell, thank you.
Index: src/usr.bin/make/lst.c
diff -u src/usr.bin/make/lst.c:1.43 src/usr.bin/make/lst.c:1.44
--- src/usr.bin/make/lst.c:1.43 Thu Aug 27 06:28:44 2020
+++ src/usr.bin/make/lst.c Thu Aug 27 06:53:57 2020
@@ -1,4 +1,4 @@
-/* $NetBSD: lst.c,v 1.43 2020/08/27 06:28:44 rillig Exp $ */
+/* $NetBSD: lst.c,v 1.44 2020/08/27 06:53:57 rillig Exp $ */
/*
* Copyright (c) 1988, 1989, 1990, 1993
@@ -37,11 +37,11 @@
#include "make.h"
#ifndef MAKE_NATIVE
-static char rcsid[] = "$NetBSD: lst.c,v 1.43 2020/08/27 06:28:44 rillig Exp $";
+static char rcsid[] = "$NetBSD: lst.c,v 1.44 2020/08/27 06:53:57 rillig Exp $";
#else
#include <sys/cdefs.h>
#ifndef lint
-__RCSID("$NetBSD: lst.c,v 1.43 2020/08/27 06:28:44 rillig Exp $");
+__RCSID("$NetBSD: lst.c,v 1.44 2020/08/27 06:53:57 rillig Exp $");
#endif /* not lint */
#endif
@@ -502,15 +502,6 @@ Lst_MemberS(Lst list, void *datum)
* should return 0 if traversal should continue and non-zero if it should
* abort. */
int
-Lst_ForEach(Lst list, LstActionProc proc, void *procData)
-{
- return Lst_ForEachFrom(list, Lst_First(list), proc, procData);
-}
-
-/* Apply the given function to each element of the given list. The function
- * should return 0 if traversal should continue and non-zero if it should
- * abort. */
-int
Lst_ForEachS(Lst list, LstActionProc proc, void *procData)
{
if (LstIsEmpty(list))
@@ -522,20 +513,6 @@ Lst_ForEachS(Lst list, LstActionProc pro
* the given node. The function should return 0 if traversal should continue,
* and non-zero if it should abort. */
int
-Lst_ForEachFrom(Lst list, LstNode node,
- LstActionProc proc, void *procData)
-{
- if (!LstIsValid(list) || LstIsEmpty(list)) {
- return 0;
- }
-
- return Lst_ForEachFromS(list, node, proc, procData);
-}
-
-/* Apply the given function to each element of the given list, starting from
- * the given node. The function should return 0 if traversal should continue,
- * and non-zero if it should abort. */
-int
Lst_ForEachFromS(Lst list, LstNode node,
LstActionProc proc, void *procData)
{
Index: src/usr.bin/make/lst.h
diff -u src/usr.bin/make/lst.h:1.46 src/usr.bin/make/lst.h:1.47
--- src/usr.bin/make/lst.h:1.46 Thu Aug 27 06:28:44 2020
+++ src/usr.bin/make/lst.h Thu Aug 27 06:53:57 2020
@@ -1,4 +1,4 @@
-/* $NetBSD: lst.h,v 1.46 2020/08/27 06:28:44 rillig Exp $ */
+/* $NetBSD: lst.h,v 1.47 2020/08/27 06:53:57 rillig Exp $ */
/*
* Copyright (c) 1988, 1989, 1990 The Regents of the University of California.
@@ -160,10 +160,8 @@ LstNode Lst_FindFromS(Lst, LstNode, Lst
*/
LstNode Lst_MemberS(Lst, void *);
/* Apply a function to all elements of a lst */
-int Lst_ForEach(Lst, LstActionProc, void *);
int Lst_ForEachS(Lst, LstActionProc, void *);
/* Apply a function to all elements of a lst starting from a certain point. */
-int Lst_ForEachFrom(Lst, LstNode, LstActionProc, void *);
int Lst_ForEachFromS(Lst, LstNode, LstActionProc, void *);
/*
* these functions are for dealing with a list as a table, of sorts.
Index: src/usr.bin/make/main.c
diff -u src/usr.bin/make/main.c:1.314 src/usr.bin/make/main.c:1.315
--- src/usr.bin/make/main.c:1.314 Wed Aug 26 22:55:46 2020
+++ src/usr.bin/make/main.c Thu Aug 27 06:53:57 2020
@@ -1,4 +1,4 @@
-/* $NetBSD: main.c,v 1.314 2020/08/26 22:55:46 rillig Exp $ */
+/* $NetBSD: main.c,v 1.315 2020/08/27 06:53:57 rillig Exp $ */
/*
* Copyright (c) 1988, 1989, 1990, 1993
@@ -69,7 +69,7 @@
*/
#ifndef MAKE_NATIVE
-static char rcsid[] = "$NetBSD: main.c,v 1.314 2020/08/26 22:55:46 rillig Exp $";
+static char rcsid[] = "$NetBSD: main.c,v 1.315 2020/08/27 06:53:57 rillig Exp $";
#else
#include <sys/cdefs.h>
#ifndef lint
@@ -81,7 +81,7 @@ __COPYRIGHT("@(#) Copyright (c) 1988, 19
#if 0
static char sccsid[] = "@(#)main.c 8.3 (Berkeley) 3/19/94";
#else
-__RCSID("$NetBSD: main.c,v 1.314 2020/08/26 22:55:46 rillig Exp $");
+__RCSID("$NetBSD: main.c,v 1.315 2020/08/27 06:53:57 rillig Exp $");
#endif
#endif /* not lint */
#endif
@@ -2041,7 +2041,7 @@ PrintOnError(GNode *gn, const char *s)
*/
Var_Set(".ERROR_TARGET", gn->name, VAR_GLOBAL);
Var_Delete(".ERROR_CMD", VAR_GLOBAL);
- Lst_ForEach(gn->commands, addErrorCMD, gn);
+ Lst_ForEachS(gn->commands, addErrorCMD, gn);
}
expr = "${MAKE_PRINT_VAR_ON_ERROR:@v@$v='${$v}'\n@}";
cp = Var_Subst(expr, VAR_GLOBAL, VARE_WANTRES);
Index: src/usr.bin/make/make.c
diff -u src/usr.bin/make/make.c:1.125 src/usr.bin/make/make.c:1.126
--- src/usr.bin/make/make.c:1.125 Thu Aug 27 06:31:46 2020
+++ src/usr.bin/make/make.c Thu Aug 27 06:53:57 2020
@@ -1,4 +1,4 @@
-/* $NetBSD: make.c,v 1.125 2020/08/27 06:31:46 rillig Exp $ */
+/* $NetBSD: make.c,v 1.126 2020/08/27 06:53:57 rillig Exp $ */
/*
* Copyright (c) 1988, 1989, 1990, 1993
@@ -69,14 +69,14 @@
*/
#ifndef MAKE_NATIVE
-static char rcsid[] = "$NetBSD: make.c,v 1.125 2020/08/27 06:31:46 rillig Exp $";
+static char rcsid[] = "$NetBSD: make.c,v 1.126 2020/08/27 06:53:57 rillig Exp $";
#else
#include <sys/cdefs.h>
#ifndef lint
#if 0
static char sccsid[] = "@(#)make.c 8.1 (Berkeley) 6/6/93";
#else
-__RCSID("$NetBSD: make.c,v 1.125 2020/08/27 06:31:46 rillig Exp $");
+__RCSID("$NetBSD: make.c,v 1.126 2020/08/27 06:53:57 rillig Exp $");
#endif
#endif /* not lint */
#endif
@@ -146,7 +146,7 @@ make_abort(GNode *gn, int line)
fprintf(debug_file, "make_abort from line %d\n", line);
Targ_PrintNode(gn, &two);
- Lst_ForEach(toBeMade, Targ_PrintNode, &two);
+ Lst_ForEachS(toBeMade, Targ_PrintNode, &two);
Targ_PrintGraph(3);
abort();
}
@@ -382,7 +382,7 @@ Make_OODate(GNode *gn)
* thinking they're out-of-date.
*/
if (!oodate) {
- Lst_ForEach(gn->parents, MakeTimeStamp, gn);
+ Lst_ForEachS(gn->parents, MakeTimeStamp, gn);
}
return oodate;
@@ -735,7 +735,7 @@ Make_Update(GNode *cgn)
parents = centurion->parents;
/* If this was a .ORDER node, schedule the RHS */
- Lst_ForEach(centurion->order_succ, MakeBuildParent, Lst_First(toBeMade));
+ Lst_ForEachS(centurion->order_succ, MakeBuildParent, Lst_First(toBeMade));
/* Now mark all the parents as having one less unmade child */
Lst_OpenS(parents);
@@ -816,8 +816,8 @@ Make_Update(GNode *cgn)
fprintf(debug_file, "- not deferred\n");
continue;
}
- if (pgn->order_pred
- && Lst_ForEach(pgn->order_pred, MakeCheckOrder, 0)) {
+ assert(pgn->order_pred != NULL);
+ if (Lst_ForEachS(pgn->order_pred, MakeCheckOrder, 0)) {
/* A .ORDER rule stops us building this */
continue;
}
@@ -977,8 +977,8 @@ Make_DoAllVar(GNode *gn)
if (gn->flags & DONE_ALLSRC)
return;
- Lst_ForEach(gn->children, MakeUnmark, gn);
- Lst_ForEach(gn->children, MakeAddAllSrc, gn);
+ Lst_ForEachS(gn->children, MakeUnmark, gn);
+ Lst_ForEachS(gn->children, MakeAddAllSrc, gn);
if (!Var_Exists (OODATE, gn)) {
Var_Set(OODATE, "", gn);
@@ -1037,7 +1037,8 @@ MakeBuildChild(void *v_cn, void *toBeMad
return 0;
/* If this node is on the RHS of a .ORDER, check LHSs. */
- if (cn->order_pred && Lst_ForEach(cn->order_pred, MakeCheckOrder, 0)) {
+ assert(cn->order_pred);
+ if (Lst_ForEachS(cn->order_pred, MakeCheckOrder, 0)) {
/* Can't build this (or anything else in this child list) yet */
cn->made = DEFERRED;
return 0; /* but keep looking */
@@ -1054,7 +1055,7 @@ MakeBuildChild(void *v_cn, void *toBeMad
Lst_InsertBeforeS(toBeMade, toBeMade_next, cn);
if (cn->unmade_cohorts != 0)
- Lst_ForEach(cn->cohorts, MakeBuildChild, toBeMade_next);
+ Lst_ForEachS(cn->cohorts, MakeBuildChild, toBeMade_next);
/*
* If this node is a .WAIT node with unmade chlidren
@@ -1120,7 +1121,7 @@ MakeStartJobs(void)
* just before the current first element.
*/
gn->made = DEFERRED;
- Lst_ForEach(gn->children, MakeBuildChild, Lst_First(toBeMade));
+ Lst_ForEachS(gn->children, MakeBuildChild, Lst_First(toBeMade));
/* and drop this node on the floor */
if (DEBUG(MAKE))
fprintf(debug_file, "dropped %s%s\n", gn->name, gn->cohort_num);
@@ -1236,7 +1237,7 @@ MakePrintStatus(void *gnp, void *v_error
GNode_FprintDetails(debug_file, " (", gn, ")!\n");
}
/* Most likely problem is actually caused by .ORDER */
- Lst_ForEach(gn->order_pred, MakePrintStatusOrder, gn);
+ Lst_ForEachS(gn->order_pred, MakePrintStatusOrder, gn);
break;
default:
/* Errors - already counted */
@@ -1260,7 +1261,7 @@ MakePrintStatus(void *gnp, void *v_error
if (!(gn->flags & CYCLE)) {
/* Fist time we've seen this node, check all children */
gn->flags |= CYCLE;
- Lst_ForEach(gn->children, MakePrintStatus, errors);
+ Lst_ForEachS(gn->children, MakePrintStatus, errors);
/* Mark that this node needn't be processed again */
gn->flags |= DONECYCLE;
return 0;
@@ -1274,7 +1275,7 @@ MakePrintStatus(void *gnp, void *v_error
return 1;
/* Reporting for our children will give the rest of the loop */
- Lst_ForEach(gn->children, MakePrintStatus, errors);
+ Lst_ForEachS(gn->children, MakePrintStatus, errors);
return 0;
}
@@ -1342,21 +1343,21 @@ Make_ExpandUse(Lst targs)
(void)Dir_MTime(gn, 0);
Var_Set(TARGET, gn->path ? gn->path : gn->name, gn);
- Lst_ForEach(gn->children, MakeUnmark, gn);
- Lst_ForEach(gn->children, MakeHandleUse, gn);
+ Lst_ForEachS(gn->children, MakeUnmark, gn);
+ Lst_ForEachS(gn->children, MakeHandleUse, gn);
if ((gn->type & OP_MADE) == 0)
Suff_FindDeps(gn);
else {
/* Pretend we made all this node's children */
- Lst_ForEach(gn->children, MakeFindChild, gn);
+ Lst_ForEachS(gn->children, MakeFindChild, gn);
if (gn->unmade != 0)
printf("Warning: %s%s still has %d unmade children\n",
gn->name, gn->cohort_num, gn->unmade);
}
if (gn->unmade != 0)
- Lst_ForEach(gn->children, MakeAddChild, examine);
+ Lst_ForEachS(gn->children, MakeAddChild, examine);
}
Lst_FreeS(examine);
@@ -1429,7 +1430,7 @@ Make_ProcessWait(Lst targs)
/* Get it displayed in the diag dumps */
Lst_PrependS(Targ_List(), pgn);
- Lst_ForEach(targs, link_parent, pgn);
+ Lst_ForEachS(targs, link_parent, pgn);
/* Start building with the 'dummy' .MAIN' node */
MakeBuildChild(pgn, NULL);
@@ -1549,7 +1550,7 @@ Make_Run(Lst targs)
if (DEBUG(MAKE))
fprintf(debug_file, "done: errors %d\n", errors);
if (errors == 0) {
- Lst_ForEach(targs, MakePrintStatus, &errors);
+ Lst_ForEachS(targs, MakePrintStatus, &errors);
if (DEBUG(MAKE)) {
fprintf(debug_file, "done: errors %d\n", errors);
if (errors)
Index: src/usr.bin/make/meta.c
diff -u src/usr.bin/make/meta.c:1.100 src/usr.bin/make/meta.c:1.101
--- src/usr.bin/make/meta.c:1.100 Wed Aug 26 22:55:46 2020
+++ src/usr.bin/make/meta.c Thu Aug 27 06:53:57 2020
@@ -1,4 +1,4 @@
-/* $NetBSD: meta.c,v 1.100 2020/08/26 22:55:46 rillig Exp $ */
+/* $NetBSD: meta.c,v 1.101 2020/08/27 06:53:57 rillig Exp $ */
/*
* Implement 'meta' mode.
@@ -424,7 +424,7 @@ meta_needed(GNode *gn, const char *dname
}
if ((gn->type & (OP_META|OP_SUBMAKE)) == OP_SUBMAKE) {
/* OP_SUBMAKE is a bit too aggressive */
- if (Lst_ForEach(gn->commands, is_submake, gn)) {
+ if (Lst_ForEachS(gn->commands, is_submake, gn)) {
if (DEBUG(META))
fprintf(debug_file, "Skipping meta for %s: .SUBMAKE\n",
gn->name);
@@ -517,7 +517,7 @@ meta_create(BuildMon *pbm, GNode *gn)
mf.gn = gn;
- Lst_ForEach(gn->commands, printCMD, &mf);
+ Lst_ForEachS(gn->commands, printCMD, &mf);
fprintf(mf.fp, "CWD %s\n", getcwd(buf, sizeof(buf)));
fprintf(mf.fp, "TARGET %s\n", tname);
@@ -1001,7 +1001,7 @@ meta_ignore(GNode *gn, const char *p)
if (*p == '/') {
cached_realpath(p, fname); /* clean it up */
- if (Lst_ForEach(metaIgnorePaths, prefix_match, fname)) {
+ if (Lst_ForEachS(metaIgnorePaths, prefix_match, fname)) {
#ifdef DEBUG_META_MODE
if (DEBUG(META))
fprintf(debug_file, "meta_oodate: ignoring path: %s\n",
@@ -1397,7 +1397,7 @@ meta_oodate(GNode *gn, Boolean oodate)
if (strncmp(p, cwd, cwdlen) == 0)
break;
- if (!Lst_ForEach(metaBailiwick, prefix_match, p))
+ if (!Lst_ForEachS(metaBailiwick, prefix_match, p))
break;
/* tmpdir might be within */
Index: src/usr.bin/make/parse.c
diff -u src/usr.bin/make/parse.c:1.264 src/usr.bin/make/parse.c:1.265
--- src/usr.bin/make/parse.c:1.264 Thu Aug 27 06:13:53 2020
+++ src/usr.bin/make/parse.c Thu Aug 27 06:53:57 2020
@@ -1,4 +1,4 @@
-/* $NetBSD: parse.c,v 1.264 2020/08/27 06:13:53 rillig Exp $ */
+/* $NetBSD: parse.c,v 1.265 2020/08/27 06:53:57 rillig Exp $ */
/*
* Copyright (c) 1988, 1989, 1990, 1993
@@ -69,14 +69,14 @@
*/
#ifndef MAKE_NATIVE
-static char rcsid[] = "$NetBSD: parse.c,v 1.264 2020/08/27 06:13:53 rillig Exp $";
+static char rcsid[] = "$NetBSD: parse.c,v 1.265 2020/08/27 06:53:57 rillig Exp $";
#else
#include <sys/cdefs.h>
#ifndef lint
#if 0
static char sccsid[] = "@(#)parse.c 8.3 (Berkeley) 3/19/94";
#else
-__RCSID("$NetBSD: parse.c,v 1.264 2020/08/27 06:13:53 rillig Exp $");
+__RCSID("$NetBSD: parse.c,v 1.265 2020/08/27 06:53:57 rillig Exp $");
#endif
#endif /* not lint */
#endif
@@ -981,7 +981,8 @@ ParseDoSrc(int tOp, const char *src)
if (keywd != -1) {
int op = parseKeywords[keywd].op;
if (op != 0) {
- Lst_ForEach(targets, ParseDoOp, &op);
+ if (targets != NULL)
+ Lst_ForEachS(targets, ParseDoOp, &op);
return;
}
if (parseKeywords[keywd].spec == Wait) {
@@ -999,7 +1000,8 @@ ParseDoSrc(int tOp, const char *src)
if (doing_depend)
ParseMark(gn);
gn->type = OP_WAIT | OP_PHONY | OP_DEPENDS | OP_NOTMAIN;
- Lst_ForEach(targets, ParseLinkSrc, gn);
+ if (targets != NULL)
+ Lst_ForEachS(targets, ParseLinkSrc, gn);
return;
}
}
@@ -1067,7 +1069,8 @@ ParseDoSrc(int tOp, const char *src)
if (tOp) {
gn->type |= tOp;
} else {
- Lst_ForEach(targets, ParseLinkSrc, gn);
+ if (targets != NULL)
+ Lst_ForEachS(targets, ParseLinkSrc, gn);
}
break;
}
@@ -1547,7 +1550,8 @@ ParseDoDependency(char *line)
* operator a target was defined with. It fails if the operator
* used isn't consistent across all references.
*/
- Lst_ForEach(targets, ParseDoOp, &op);
+ if (targets != NULL)
+ Lst_ForEachS(targets, ParseDoOp, &op);
/*
* Onward to the sources.
@@ -1584,7 +1588,8 @@ ParseDoDependency(char *line)
beSilent = TRUE;
break;
case ExPath:
- Lst_ForEach(paths, ParseClearPath, NULL);
+ if (paths != NULL)
+ Lst_ForEachS(paths, ParseClearPath, NULL);
Dir_SetPATH();
break;
#ifdef POSIX
@@ -1659,7 +1664,8 @@ ParseDoDependency(char *line)
Suff_AddSuffix(line, &mainNode);
break;
case ExPath:
- Lst_ForEach(paths, ParseAddDir, line);
+ if (paths != NULL)
+ Lst_ForEachS(paths, ParseAddDir, line);
break;
case Includes:
Suff_AddInclude(line);
@@ -1740,14 +1746,14 @@ ParseDoDependency(char *line)
}
}
- if (mainNode == NULL) {
+ if (mainNode == NULL && targets != NULL) {
/*
* If we have yet to decide on a main target to make, in the
* absence of any user input, we want the first target on
* the first dependency line that is actually a real target
* (i.e. isn't a .USE or .EXEC rule) to be made.
*/
- Lst_ForEach(targets, ParseFindMain, NULL);
+ Lst_ForEachS(targets, ParseFindMain, NULL);
}
out:
@@ -3019,7 +3025,7 @@ ParseFinishLine(void)
{
if (inLine) {
if (targets != NULL) {
- Lst_ForEach(targets, Suff_EndTransform, NULL);
+ Lst_ForEachS(targets, Suff_EndTransform, NULL);
Lst_DestroyS(targets, ParseHasCommands);
}
targets = NULL;
@@ -3133,7 +3139,7 @@ Parse_File(const char *name, int fd)
*/
if (targets) {
cp = bmake_strdup(cp);
- Lst_ForEach(targets, ParseAddCmd, cp);
+ Lst_ForEachS(targets, ParseAddCmd, cp);
#ifdef CLEANUP
Lst_AppendS(targCmds, cp);
#endif
Index: src/usr.bin/make/suff.c
diff -u src/usr.bin/make/suff.c:1.117 src/usr.bin/make/suff.c:1.118
--- src/usr.bin/make/suff.c:1.117 Wed Aug 26 23:08:26 2020
+++ src/usr.bin/make/suff.c Thu Aug 27 06:53:57 2020
@@ -1,4 +1,4 @@
-/* $NetBSD: suff.c,v 1.117 2020/08/26 23:08:26 rillig Exp $ */
+/* $NetBSD: suff.c,v 1.118 2020/08/27 06:53:57 rillig Exp $ */
/*
* Copyright (c) 1988, 1989, 1990, 1993
@@ -69,14 +69,14 @@
*/
#ifndef MAKE_NATIVE
-static char rcsid[] = "$NetBSD: suff.c,v 1.117 2020/08/26 23:08:26 rillig Exp $";
+static char rcsid[] = "$NetBSD: suff.c,v 1.118 2020/08/27 06:53:57 rillig Exp $";
#else
#include <sys/cdefs.h>
#ifndef lint
#if 0
static char sccsid[] = "@(#)suff.c 8.4 (Berkeley) 3/21/94";
#else
-__RCSID("$NetBSD: suff.c,v 1.117 2020/08/26 23:08:26 rillig Exp $");
+__RCSID("$NetBSD: suff.c,v 1.118 2020/08/27 06:53:57 rillig Exp $");
#endif
#endif /* not lint */
#endif
@@ -1000,12 +1000,12 @@ Suff_AddSuffix(char *str, GNode **gn)
gs.gn = gn;
gs.s = s;
gs.r = FALSE;
- Lst_ForEach(Targ_List(), SuffScanTargets, &gs);
+ Lst_ForEachS(Targ_List(), SuffScanTargets, &gs);
/*
* Look for any existing transformations from or to this suffix.
* XXX: Only do this after a Suff_ClearSuffixes?
*/
- Lst_ForEach(transforms, SuffRebuildGraph, s);
+ Lst_ForEachS(transforms, SuffRebuildGraph, s);
}
}
@@ -1212,7 +1212,7 @@ SuffAddSrc(void *sp, void *lsp)
s2->cp = Lst_Init();
Lst_AppendS(targ->cp, s2);
fprintf(debug_file, "1 add %p %p to %p:", targ, s2, ls->l);
- Lst_ForEach(ls->l, PrintAddr, NULL);
+ Lst_ForEachS(ls->l, PrintAddr, NULL);
fprintf(debug_file, "\n");
#endif
}
@@ -1230,7 +1230,7 @@ SuffAddSrc(void *sp, void *lsp)
s2->cp = Lst_Init();
Lst_AppendS(targ->cp, s2);
fprintf(debug_file, "2 add %p %p to %p:", targ, s2, ls->l);
- Lst_ForEach(ls->l, PrintAddr, NULL);
+ Lst_ForEachS(ls->l, PrintAddr, NULL);
fprintf(debug_file, "\n");
#endif
@@ -1261,7 +1261,7 @@ SuffAddLevel(Lst l, Src *targ)
ls.s = targ;
ls.l = l;
- Lst_ForEach(targ->suff->children, SuffAddSrc, &ls);
+ Lst_ForEachS(targ->suff->children, SuffAddSrc, &ls);
}
/*-
@@ -1287,7 +1287,7 @@ SuffRemoveSrc(Lst l)
#ifdef DEBUG_SRC
fprintf(debug_file, "cleaning %lx: ", (unsigned long) l);
- Lst_ForEach(l, PrintAddr, NULL);
+ Lst_ForEachS(l, PrintAddr, NULL);
fprintf(debug_file, "\n");
#endif
@@ -1319,7 +1319,7 @@ SuffRemoveSrc(Lst l)
#ifdef DEBUG_SRC
else {
fprintf(debug_file, "keep: [l=%p] p=%p %d: ", l, s, s->children);
- Lst_ForEach(s->cp, PrintAddr, NULL);
+ Lst_ForEachS(s->cp, PrintAddr, NULL);
fprintf(debug_file, "\n");
}
#endif
@@ -2649,7 +2649,7 @@ SuffPrintTrans(void *tp, void *dummy MAK
fprintf(debug_file, "%-16s: ", t->name);
Targ_PrintType(t->type);
fputc('\n', debug_file);
- Lst_ForEach(t->commands, Targ_PrintCmd, NULL);
+ Lst_ForEachS(t->commands, Targ_PrintCmd, NULL);
fputc('\n', debug_file);
return 0;
}
@@ -2658,8 +2658,8 @@ void
Suff_PrintAll(void)
{
fprintf(debug_file, "#*** Suffixes:\n");
- Lst_ForEach(sufflist, SuffPrintSuff, NULL);
+ Lst_ForEachS(sufflist, SuffPrintSuff, NULL);
fprintf(debug_file, "#*** Transformations:\n");
- Lst_ForEach(transforms, SuffPrintTrans, NULL);
+ Lst_ForEachS(transforms, SuffPrintTrans, NULL);
}
Index: src/usr.bin/make/targ.c
diff -u src/usr.bin/make/targ.c:1.73 src/usr.bin/make/targ.c:1.74
--- src/usr.bin/make/targ.c:1.73 Wed Aug 26 22:55:46 2020
+++ src/usr.bin/make/targ.c Thu Aug 27 06:53:57 2020
@@ -1,4 +1,4 @@
-/* $NetBSD: targ.c,v 1.73 2020/08/26 22:55:46 rillig Exp $ */
+/* $NetBSD: targ.c,v 1.74 2020/08/27 06:53:57 rillig Exp $ */
/*
* Copyright (c) 1988, 1989, 1990, 1993
@@ -69,14 +69,14 @@
*/
#ifndef MAKE_NATIVE
-static char rcsid[] = "$NetBSD: targ.c,v 1.73 2020/08/26 22:55:46 rillig Exp $";
+static char rcsid[] = "$NetBSD: targ.c,v 1.74 2020/08/27 06:53:57 rillig Exp $";
#else
#include <sys/cdefs.h>
#ifndef lint
#if 0
static char sccsid[] = "@(#)targ.c 8.2 (Berkeley) 3/19/94";
#else
-__RCSID("$NetBSD: targ.c,v 1.73 2020/08/26 22:55:46 rillig Exp $");
+__RCSID("$NetBSD: targ.c,v 1.74 2020/08/27 06:53:57 rillig Exp $");
#endif
#endif /* not lint */
#endif
@@ -662,7 +662,7 @@ Targ_PrintNode(void *gnp, void *passp)
}
if (!Lst_IsEmpty (gn->iParents)) {
fprintf(debug_file, "# implicit parents: ");
- Lst_ForEach(gn->iParents, TargPrintName, NULL);
+ Lst_ForEachS(gn->iParents, TargPrintName, NULL);
fprintf(debug_file, "\n");
}
} else {
@@ -671,17 +671,17 @@ Targ_PrintNode(void *gnp, void *passp)
}
if (!Lst_IsEmpty (gn->parents)) {
fprintf(debug_file, "# parents: ");
- Lst_ForEach(gn->parents, TargPrintName, NULL);
+ Lst_ForEachS(gn->parents, TargPrintName, NULL);
fprintf(debug_file, "\n");
}
if (!Lst_IsEmpty (gn->order_pred)) {
fprintf(debug_file, "# order_pred: ");
- Lst_ForEach(gn->order_pred, TargPrintName, NULL);
+ Lst_ForEachS(gn->order_pred, TargPrintName, NULL);
fprintf(debug_file, "\n");
}
if (!Lst_IsEmpty (gn->order_succ)) {
fprintf(debug_file, "# order_succ: ");
- Lst_ForEach(gn->order_succ, TargPrintName, NULL);
+ Lst_ForEachS(gn->order_succ, TargPrintName, NULL);
fprintf(debug_file, "\n");
}
@@ -695,12 +695,12 @@ Targ_PrintNode(void *gnp, void *passp)
fprintf(debug_file, ":: "); break;
}
Targ_PrintType(gn->type);
- Lst_ForEach(gn->children, TargPrintName, NULL);
+ Lst_ForEachS(gn->children, TargPrintName, NULL);
fprintf(debug_file, "\n");
- Lst_ForEach(gn->commands, Targ_PrintCmd, NULL);
+ Lst_ForEachS(gn->commands, Targ_PrintCmd, NULL);
fprintf(debug_file, "\n\n");
if (gn->type & OP_DOUBLEDEP) {
- Lst_ForEach(gn->cohorts, Targ_PrintNode, &pass);
+ Lst_ForEachS(gn->cohorts, Targ_PrintNode, &pass);
}
}
return 0;
@@ -754,10 +754,10 @@ void
Targ_PrintGraph(int pass)
{
fprintf(debug_file, "#*** Input graph:\n");
- Lst_ForEach(allTargets, Targ_PrintNode, &pass);
+ Lst_ForEachS(allTargets, Targ_PrintNode, &pass);
fprintf(debug_file, "\n\n");
fprintf(debug_file, "#\n# Files that are only sources:\n");
- Lst_ForEach(allTargets, TargPrintOnlySrc, NULL);
+ Lst_ForEachS(allTargets, TargPrintOnlySrc, NULL);
fprintf(debug_file, "#*** Global Variables:\n");
Var_Dump(VAR_GLOBAL);
fprintf(debug_file, "#*** Command-line Variables:\n");
@@ -798,7 +798,7 @@ TargPropagateNode(void *gnp, void *junk
GNode *gn = (GNode *)gnp;
if (gn->type & OP_DOUBLEDEP)
- Lst_ForEach(gn->cohorts, TargPropagateCohort, gnp);
+ Lst_ForEachS(gn->cohorts, TargPropagateCohort, gnp);
return 0;
}
@@ -847,5 +847,5 @@ TargPropagateCohort(void *cgnp, void *pg
void
Targ_Propagate(void)
{
- Lst_ForEach(allTargets, TargPropagateNode, NULL);
+ Lst_ForEachS(allTargets, TargPropagateNode, NULL);
}