Module Name: src
Committed By: rillig
Date: Sun Aug 9 19:51:02 UTC 2020
Modified Files:
src/usr.bin/make: buf.c cond.c dir.c for.c strlist.c
Log Message:
make(1): format the source code consistently, at least per file
Some files use 4 spaces per indentation level, others use 8. At least
for the few files from this commit, they use a consistent style
throughout each file now.
In Cond_Eval, the #define has changed into an enum since the identifiers
need not be visible to the C preprocessor.
To generate a diff of this commit:
cvs rdiff -u -r1.33 -r1.34 src/usr.bin/make/buf.c
cvs rdiff -u -r1.92 -r1.93 src/usr.bin/make/cond.c
cvs rdiff -u -r1.84 -r1.85 src/usr.bin/make/dir.c
cvs rdiff -u -r1.62 -r1.63 src/usr.bin/make/for.c
cvs rdiff -u -r1.4 -r1.5 src/usr.bin/make/strlist.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/buf.c
diff -u src/usr.bin/make/buf.c:1.33 src/usr.bin/make/buf.c:1.34
--- src/usr.bin/make/buf.c:1.33 Sun Aug 9 18:52:03 2020
+++ src/usr.bin/make/buf.c Sun Aug 9 19:51:02 2020
@@ -1,4 +1,4 @@
-/* $NetBSD: buf.c,v 1.33 2020/08/09 18:52:03 rillig Exp $ */
+/* $NetBSD: buf.c,v 1.34 2020/08/09 19:51:02 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: buf.c,v 1.33 2020/08/09 18:52:03 rillig Exp $";
+static char rcsid[] = "$NetBSD: buf.c,v 1.34 2020/08/09 19:51:02 rillig Exp $";
#else
#include <sys/cdefs.h>
#ifndef lint
#if 0
static char sccsid[] = "@(#)buf.c 8.1 (Berkeley) 6/6/93";
#else
-__RCSID("$NetBSD: buf.c,v 1.33 2020/08/09 18:52:03 rillig Exp $");
+__RCSID("$NetBSD: buf.c,v 1.34 2020/08/09 19:51:02 rillig Exp $");
#endif
#endif /* not lint */
#endif
@@ -144,8 +144,8 @@ Buf_AddInt(Buffer *bp, int n)
* add enough slop to cope with a '-' sign and a trailing '\0'.
*/
enum {
- bits = sizeof(int) * CHAR_BIT,
- buf_size = 1 + (bits + 2) / 3 + 1
+ bits = sizeof(int) * CHAR_BIT,
+ buf_size = 1 + (bits + 2) / 3 + 1
};
char buf[buf_size];
@@ -209,7 +209,7 @@ Buf_Destroy(Buffer *buf, Boolean freeDat
}
#ifndef BUF_COMPACT_LIMIT
-# define BUF_COMPACT_LIMIT 128 /* worthwhile saving */
+# define BUF_COMPACT_LIMIT 128 /* worthwhile saving */
#endif
/* Reset the buffer and return its data.
Index: src/usr.bin/make/cond.c
diff -u src/usr.bin/make/cond.c:1.92 src/usr.bin/make/cond.c:1.93
--- src/usr.bin/make/cond.c:1.92 Sat Aug 8 18:54:04 2020
+++ src/usr.bin/make/cond.c Sun Aug 9 19:51:02 2020
@@ -1,4 +1,4 @@
-/* $NetBSD: cond.c,v 1.92 2020/08/08 18:54:04 rillig Exp $ */
+/* $NetBSD: cond.c,v 1.93 2020/08/09 19:51:02 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: cond.c,v 1.92 2020/08/08 18:54:04 rillig Exp $";
+static char rcsid[] = "$NetBSD: cond.c,v 1.93 2020/08/09 19:51:02 rillig Exp $";
#else
#include <sys/cdefs.h>
#ifndef lint
#if 0
static char sccsid[] = "@(#)cond.c 8.2 (Berkeley) 1/2/94";
#else
-__RCSID("$NetBSD: cond.c,v 1.92 2020/08/08 18:54:04 rillig Exp $");
+__RCSID("$NetBSD: cond.c,v 1.93 2020/08/09 19:51:02 rillig Exp $");
#endif
#endif /* not lint */
#endif
@@ -93,7 +93,7 @@ __RCSID("$NetBSD: cond.c,v 1.92 2020/08/
#include <assert.h>
#include <ctype.h>
-#include <errno.h> /* For strtoul() error checking */
+#include <errno.h>
#include "make.h"
#include "hash.h"
@@ -148,13 +148,13 @@ typedef enum {
static Token CondE(Boolean);
static CondEvalResult do_Cond_EvalExpression(Boolean *);
-static const struct If *if_info; /* Info for current statement */
-static const char *condExpr; /* The expression to parse */
-static Token condPushBack=TOK_NONE; /* Single push-back token used in
+static const struct If *if_info; /* Info for current statement */
+static const char *condExpr; /* The expression to parse */
+static Token condPushBack = TOK_NONE; /* Single push-back token used in
* parsing */
-static unsigned int cond_depth = 0; /* current .if nesting level */
-static unsigned int cond_min_depth = 0; /* depth at makefile open */
+static unsigned int cond_depth = 0; /* current .if nesting level */
+static unsigned int cond_min_depth = 0; /* depth at makefile open */
/*
* Indicate when we should be strict about lhs of comparisons.
@@ -168,7 +168,7 @@ static Boolean lhsStrict;
static int
istoken(const char *str, const char *tok, size_t len)
{
- return strncmp(str, tok, len) == 0 && !isalpha((unsigned char)str[len]);
+ return strncmp(str, tok, len) == 0 && !isalpha((unsigned char)str[len]);
}
/* Push back the most recent token read. We only need one level of
@@ -191,11 +191,11 @@ static int
CondGetArg(Boolean doEval, const char **linePtr, char **argPtr,
const char *func)
{
- const char *cp;
- Buffer buf;
- int paren_depth;
- char ch;
- size_t argLen;
+ const char *cp;
+ Buffer buf;
+ int paren_depth;
+ char ch;
+ size_t argLen;
cp = *linePtr;
if (func != NULL)
@@ -237,8 +237,8 @@ CondGetArg(Boolean doEval, const char **
* variable, so we don't do it too. Nor do we return an error,
* though perhaps we should...
*/
- int len;
- void *freeIt;
+ int len;
+ void *freeIt;
VarEvalFlags eflags = VARE_UNDEFERR | (doEval ? VARE_WANTRES : 0);
const char *cp2 = Var_Parse(cp, VAR_CMD, eflags, &len, &freeIt);
Buf_AddStr(&buf, cp2);
@@ -248,9 +248,8 @@ CondGetArg(Boolean doEval, const char **
}
if (ch == '(')
paren_depth++;
- else
- if (ch == ')' && --paren_depth < 0)
- break;
+ else if (ch == ')' && --paren_depth < 0)
+ break;
Buf_AddByte(&buf, *cp);
cp++;
}
@@ -264,7 +263,7 @@ CondGetArg(Boolean doEval, const char **
if (func != NULL && *cp++ != ')') {
Parse_Error(PARSE_WARNING, "Missing closing parenthesis for %s()",
- func);
+ func);
return 0;
}
@@ -302,12 +301,12 @@ static Boolean
CondDoExists(int argLen MAKE_ATTR_UNUSED, const char *arg)
{
Boolean result;
- char *path;
+ char *path;
path = Dir_FindFile(arg, dirSearchPath);
if (DEBUG(COND)) {
fprintf(debug_file, "exists(%s) result is \"%s\"\n",
- arg, path ? path : "");
+ arg, path ? path : "");
}
if (path != NULL) {
result = TRUE;
@@ -322,7 +321,7 @@ CondDoExists(int argLen MAKE_ATTR_UNUSED
static Boolean
CondDoTarget(int argLen MAKE_ATTR_UNUSED, const char *arg)
{
- GNode *gn;
+ GNode *gn;
gn = Targ_FindNode(arg, TARG_NOCREATE);
return gn != NULL && !OP_NOP(gn->type);
@@ -333,7 +332,7 @@ CondDoTarget(int argLen MAKE_ATTR_UNUSED
static Boolean
CondDoCommands(int argLen MAKE_ATTR_UNUSED, const char *arg)
{
- GNode *gn;
+ GNode *gn;
gn = Targ_FindNode(arg, TARG_NOCREATE);
return gn != NULL && !OP_NOP(gn->type) && !Lst_IsEmpty(gn->commands);
@@ -395,7 +394,7 @@ CondGetString(Boolean doEval, Boolean *q
Buffer buf;
const char *cp;
const char *str;
- int len;
+ int len;
int qt;
const char *start;
@@ -457,7 +456,7 @@ CondGetString(Boolean doEval, Boolean *q
*/
if ((condExpr == start + len) &&
(*condExpr == '\0' ||
- isspace((unsigned char) *condExpr) ||
+ isspace((unsigned char)*condExpr) ||
strchr("!=><)", *condExpr))) {
goto cleanup;
}
@@ -471,12 +470,12 @@ CondGetString(Boolean doEval, Boolean *q
free(*freeIt);
*freeIt = NULL;
}
- str = NULL; /* not finished yet */
- condExpr--; /* don't skip over next char */
+ str = NULL; /* not finished yet */
+ condExpr--; /* don't skip over next char */
break;
default:
if (strictLHS && !qt && *start != '$' &&
- !isdigit((unsigned char) *start)) {
+ !isdigit((unsigned char)*start)) {
/* lhs must be quoted, a variable reference or number */
if (*freeIt) {
free(*freeIt);
@@ -489,26 +488,26 @@ CondGetString(Boolean doEval, Boolean *q
break;
}
}
- got_str:
+got_str:
*freeIt = Buf_GetAll(&buf, NULL);
str = *freeIt;
- cleanup:
+cleanup:
Buf_Destroy(&buf, FALSE);
return str;
}
static const struct If {
- const char *form; /* Form of if */
- int formlen; /* Length of form */
- Boolean doNot; /* TRUE if default function should be negated */
- Boolean (*defProc)(int, const char *); /* Default function to apply */
+ const char *form; /* Form of if */
+ int formlen; /* Length of form */
+ Boolean doNot; /* TRUE if default function should be negated */
+ Boolean (*defProc)(int, const char *); /* Default function to apply */
} ifs[] = {
- { "def", 3, FALSE, CondDoDefined },
- { "ndef", 4, TRUE, CondDoDefined },
- { "make", 4, FALSE, CondDoMake },
- { "nmake", 5, TRUE, CondDoMake },
- { "", 0, FALSE, CondDoDefined },
- { NULL, 0, FALSE, NULL }
+ { "def", 3, FALSE, CondDoDefined },
+ { "ndef", 4, TRUE, CondDoDefined },
+ { "make", 4, FALSE, CondDoMake },
+ { "nmake", 5, TRUE, CondDoMake },
+ { "", 0, FALSE, CondDoDefined },
+ { NULL, 0, FALSE, NULL }
};
/*-
@@ -520,15 +519,15 @@ static const struct If {
static Token
compare_expression(Boolean doEval)
{
- Token t;
- const char *lhs;
- const char *rhs;
- const char *op;
- void *lhsFree;
- void *rhsFree;
+ Token t;
+ const char *lhs;
+ const char *rhs;
+ const char *op;
+ void *lhsFree;
+ void *rhsFree;
Boolean lhsQuoted;
Boolean rhsQuoted;
- double left, right;
+ double left, right;
t = TOK_ERROR;
rhs = NULL;
@@ -546,7 +545,7 @@ compare_expression(Boolean doEval)
/*
* Skip whitespace to get to the operator
*/
- while (isspace((unsigned char) *condExpr))
+ while (isspace((unsigned char)*condExpr))
condExpr++;
/*
@@ -556,39 +555,39 @@ compare_expression(Boolean doEval)
*/
op = condExpr;
switch (*condExpr) {
- case '!':
- case '=':
- case '<':
- case '>':
- if (condExpr[1] == '=') {
- condExpr += 2;
- } else {
- condExpr += 1;
- }
- break;
- default:
- if (!doEval) {
- t = TOK_FALSE;
- goto done;
- }
- /* For .ifxxx "..." check for non-empty string. */
- if (lhsQuoted) {
- t = lhs[0] != 0;
- goto done;
- }
- /* For .ifxxx <number> compare against zero */
- if (CondCvtArg(lhs, &left)) {
- t = left != 0.0;
- goto done;
- }
- /* For .if ${...} check for non-empty string (defProc is ifdef). */
- if (if_info->form[0] == 0) {
- t = lhs[0] != 0;
- goto done;
- }
- /* Otherwise action default test ... */
- t = if_info->defProc(strlen(lhs), lhs) != if_info->doNot;
+ case '!':
+ case '=':
+ case '<':
+ case '>':
+ if (condExpr[1] == '=') {
+ condExpr += 2;
+ } else {
+ condExpr += 1;
+ }
+ break;
+ default:
+ if (!doEval) {
+ t = TOK_FALSE;
goto done;
+ }
+ /* For .ifxxx "..." check for non-empty string. */
+ if (lhsQuoted) {
+ t = lhs[0] != 0;
+ goto done;
+ }
+ /* For .ifxxx <number> compare against zero */
+ if (CondCvtArg(lhs, &left)) {
+ t = left != 0.0;
+ goto done;
+ }
+ /* For .if ${...} check for non-empty string (defProc is ifdef). */
+ if (if_info->form[0] == 0) {
+ t = lhs[0] != 0;
+ goto done;
+ }
+ /* Otherwise action default test ... */
+ t = if_info->defProc(strlen(lhs), lhs) != if_info->doNot;
+ goto done;
}
while (isspace((unsigned char)*condExpr))
@@ -610,16 +609,16 @@ compare_expression(Boolean doEval)
}
if (rhsQuoted || lhsQuoted) {
-do_string_compare:
+ do_string_compare:
if (((*op != '!') && (*op != '=')) || (op[1] != '=')) {
Parse_Error(PARSE_WARNING,
- "String comparison operator should be either == or !=");
+ "String comparison operator should be either == or !=");
goto done;
}
if (DEBUG(COND)) {
fprintf(debug_file, "lhs = \"%s\", rhs = \"%s\", op = %.2s\n",
- lhs, rhs, op);
+ lhs, rhs, op);
}
/*
* Null-terminate rhs and perform the comparison.
@@ -641,9 +640,9 @@ do_string_compare:
if (DEBUG(COND)) {
fprintf(debug_file, "left = %f, right = %f, op = %.2s\n", left,
- right, op);
+ right, op);
}
- switch(op[0]) {
+ switch (op[0]) {
case '!':
if (op[1] != '=') {
Parse_Error(PARSE_WARNING,
@@ -691,15 +690,16 @@ get_mpt_arg(Boolean doEval, const char *
* Use Var_Parse to parse the spec in parens and return
* TOK_TRUE if the resulting string is empty.
*/
- int length;
- void *freeIt;
+ int length;
+ void *freeIt;
const char *val;
const char *cp = *linePtr;
/* We do all the work here and return the result as the length */
*argPtr = NULL;
- val = Var_Parse(cp - 1, VAR_CMD, doEval ? VARE_WANTRES : 0, &length, &freeIt);
+ val = Var_Parse(cp - 1, VAR_CMD, doEval ? VARE_WANTRES : 0, &length,
+ &freeIt);
/*
* Advance *linePtr to beyond the closing ). Note that
* we subtract one because 'length' is calculated from 'cp - 1'.
@@ -734,23 +734,23 @@ static Token
compare_function(Boolean doEval)
{
static const struct fn_def {
- const char *fn_name;
- int fn_name_len;
- int (*fn_getarg)(Boolean, const char **, char **, const char *);
- Boolean (*fn_proc)(int, const char *);
+ const char *fn_name;
+ int fn_name_len;
+ int (*fn_getarg)(Boolean, const char **, char **, const char *);
+ Boolean (*fn_proc)(int, const char *);
} fn_defs[] = {
- { "defined", 7, CondGetArg, CondDoDefined },
- { "make", 4, CondGetArg, CondDoMake },
- { "exists", 6, CondGetArg, CondDoExists },
- { "empty", 5, get_mpt_arg, CondDoEmpty },
- { "target", 6, CondGetArg, CondDoTarget },
- { "commands", 8, CondGetArg, CondDoCommands },
- { NULL, 0, NULL, NULL },
+ { "defined", 7, CondGetArg, CondDoDefined },
+ { "make", 4, CondGetArg, CondDoMake },
+ { "exists", 6, CondGetArg, CondDoExists },
+ { "empty", 5, get_mpt_arg, CondDoEmpty },
+ { "target", 6, CondGetArg, CondDoTarget },
+ { "commands", 8, CondGetArg, CondDoCommands },
+ { NULL, 0, NULL, NULL },
};
const struct fn_def *fn_def;
- Token t;
- char *arg = NULL;
- int arglen;
+ Token t;
+ char *arg = NULL;
+ int arglen;
const char *cp = condExpr;
const char *cp1;
@@ -884,7 +884,7 @@ CondToken(Boolean doEval)
static Token
CondT(Boolean doEval)
{
- Token t;
+ Token t;
t = CondToken(doEval);
@@ -932,7 +932,7 @@ CondT(Boolean doEval)
static Token
CondF(Boolean doEval)
{
- Token l, o;
+ Token l, o;
l = CondT(doEval);
if (l != TOK_ERROR) {
@@ -978,7 +978,7 @@ CondF(Boolean doEval)
static Token
CondE(Boolean doEval)
{
- Token l, o;
+ Token l, o;
l = CondF(doEval);
if (l != TOK_ERROR) {
@@ -1051,7 +1051,8 @@ do_Cond_EvalExpression(Boolean *value)
*-----------------------------------------------------------------------
*/
CondEvalResult
-Cond_EvalExpression(const struct If *info, char *line, Boolean *value, int eprint, Boolean strictLHS)
+Cond_EvalExpression(const struct If *info, char *line, Boolean *value,
+ int eprint, Boolean strictLHS)
{
static const struct If *dflt_info;
const struct If *sv_if_info = if_info;
@@ -1066,7 +1067,7 @@ Cond_EvalExpression(const struct If *inf
if (info == NULL && (info = dflt_info) == NULL) {
/* Scan for the entry for .if - it can't be first */
- for (info = ifs; ; info++)
+ for (info = ifs;; info++)
if (info->form[0] == 0)
break;
dflt_info = info;
@@ -1117,23 +1118,23 @@ Cond_EvalExpression(const struct If *inf
CondEvalResult
Cond_Eval(char *line)
{
-#define MAXIF 128 /* maximum depth of .if'ing */
-#define MAXIF_BUMP 32 /* how much to grow by */
+ enum { MAXIF = 128 }; /* maximum depth of .if'ing */
+ enum { MAXIF_BUMP = 32 }; /* how much to grow by */
enum if_states {
IF_ACTIVE, /* .if or .elif part active */
ELSE_ACTIVE, /* .else part active */
SEARCH_FOR_ELIF, /* searching for .elif/else to execute */
- SKIP_TO_ELSE, /* has been true, but not seen '.else' */
+ SKIP_TO_ELSE, /* has been true, but not seen '.else' */
SKIP_TO_ENDIF /* nothing else to execute */
};
static enum if_states *cond_state = NULL;
static unsigned int max_if_depth = MAXIF;
const struct If *ifp;
- Boolean isElif;
- Boolean value;
- int level; /* Level at which to report errors. */
- enum if_states state;
+ Boolean isElif;
+ Boolean value;
+ int level; /* Level at which to report errors. */
+ enum if_states state;
level = PARSE_FATAL;
if (!cond_state) {
@@ -1156,7 +1157,8 @@ Cond_Eval(char *line)
}
/* Return state for previous conditional */
cond_depth--;
- return cond_state[cond_depth] <= ELSE_ACTIVE ? COND_PARSE : COND_SKIP;
+ return cond_state[cond_depth] <= ELSE_ACTIVE
+ ? COND_PARSE : COND_SKIP;
}
/* Quite likely this is 'else' or 'elif' */
@@ -1200,7 +1202,7 @@ Cond_Eval(char *line)
* function is, etc. -- by looking in the table of valid "ifs"
*/
line += 2;
- for (ifp = ifs; ; ifp++) {
+ for (ifp = ifs;; ifp++) {
if (ifp->form == NULL)
return COND_INVALID;
if (istoken(ifp->form, line, ifp->formlen)) {
@@ -1236,8 +1238,8 @@ Cond_Eval(char *line)
* can need more than the default.
*/
max_if_depth += MAXIF_BUMP;
- cond_state = bmake_realloc(cond_state, max_if_depth *
- sizeof(*cond_state));
+ cond_state = bmake_realloc(cond_state,
+ max_if_depth * sizeof(*cond_state));
}
state = cond_state[cond_depth];
cond_depth++;
Index: src/usr.bin/make/dir.c
diff -u src/usr.bin/make/dir.c:1.84 src/usr.bin/make/dir.c:1.85
--- src/usr.bin/make/dir.c:1.84 Mon Aug 3 20:26:09 2020
+++ src/usr.bin/make/dir.c Sun Aug 9 19:51:02 2020
@@ -1,4 +1,4 @@
-/* $NetBSD: dir.c,v 1.84 2020/08/03 20:26:09 rillig Exp $ */
+/* $NetBSD: dir.c,v 1.85 2020/08/09 19:51:02 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.84 2020/08/03 20:26:09 rillig Exp $";
+static char rcsid[] = "$NetBSD: dir.c,v 1.85 2020/08/09 19:51:02 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.84 2020/08/03 20:26:09 rillig Exp $");
+__RCSID("$NetBSD: dir.c,v 1.85 2020/08/09 19:51:02 rillig Exp $");
#endif
#endif /* not lint */
#endif
@@ -217,34 +217,34 @@ __RCSID("$NetBSD: dir.c,v 1.84 2020/08/0
* in a cache for when Dir_MTime was actually called.
*/
-Lst dirSearchPath; /* main search path */
+Lst dirSearchPath; /* main search path */
-static Lst openDirectories; /* the list of all open directories */
+static Lst openDirectories; /* the list of all open directories */
/*
* Variables for gathering statistics on the efficiency of the hashing
* mechanism.
*/
-static int hits, /* Found in directory cache */
- misses, /* Sad, but not evil misses */
- nearmisses, /* Found under search path */
- bigmisses; /* Sought by itself */
-
-static Path *dot; /* contents of current directory */
-static Path *cur; /* contents of current directory, if not dot */
-static Path *dotLast; /* a fake path entry indicating we need to
- * look for . last */
-static Hash_Table mtimes; /* Results of doing a last-resort stat in
- * Dir_FindFile -- if we have to go to the
- * system to find the file, we might as well
- * have its mtime on record. XXX: If this is done
- * way early, there's a chance other rules will
- * have already updated the file, in which case
- * we'll update it again. Generally, there won't
- * be two rules to update a single file, so this
- * should be ok, but... */
+static int hits; /* Found in directory cache */
+static int misses; /* Sad, but not evil misses */
+static int nearmisses; /* Found under search path */
+static int bigmisses; /* Sought by itself */
+
+static Path *dot; /* contents of current directory */
+static Path *cur; /* contents of current directory, if not dot */
+static Path *dotLast; /* a fake path entry indicating we need to
+ * look for . last */
+
+/* Results of doing a last-resort stat in Dir_FindFile -- if we have to go to
+ * the system to find the file, we might as well have its mtime on record.
+ *
+ * XXX: If this is done way early, there's a chance other rules will have
+ * already updated the file, in which case we'll update it again. Generally,
+ * there won't be two rules to update a single file, so this should be ok,
+ * but... */
+static Hash_Table mtimes;
-static Hash_Table lmtimes; /* same as mtimes but for lstat */
+static Hash_Table lmtimes; /* same as mtimes but for lstat */
static int DirFindName(const void *, const void *);
static int DirMatchFiles(const char *, Path *, Lst);
@@ -263,9 +263,9 @@ static char *DirLookupAbs(Path *, const
* mtime and mode are all we care about.
*/
struct cache_st {
- time_t lmtime; /* lstat */
- time_t mtime; /* stat */
- mode_t mode;
+ time_t lmtime; /* lstat */
+ time_t mtime; /* stat */
+ mode_t mode;
};
/* minimize changes below */
@@ -304,7 +304,7 @@ cached_stats(Hash_Table *htp, const char
return -1;
if (st->st_mtime == 0)
- st->st_mtime = 1; /* avoid confusion with missing file */
+ st->st_mtime = 1; /* avoid confusion with missing file */
if (!entry)
entry = Hash_CreateEntry(htp, pathname, NULL);
@@ -321,7 +321,7 @@ cached_stats(Hash_Table *htp, const char
cst->mode = st->st_mode;
if (DEBUG(DIR)) {
fprintf(debug_file, " Caching %s for %s\n",
- Targ_FmtTime(st->st_mtime), pathname);
+ Targ_FmtTime(st->st_mtime), pathname);
}
return 0;
@@ -432,7 +432,7 @@ Dir_InitDot(void)
* to make sure it's not destroyed.
*/
dot->refCount += 1;
- Dir_SetPATH(); /* initialize */
+ Dir_SetPATH(); /* initialize */
}
/*-
@@ -475,9 +475,9 @@ Dir_End(void)
void
Dir_SetPATH(void)
{
- LstNode ln; /* a list element */
+ LstNode ln; /* a list element */
Path *p;
- Boolean hasLastDot = FALSE; /* true we should search dot last */
+ Boolean hasLastDot = FALSE; /* true we should search dot last */
Var_Delete(".PATH", VAR_GLOBAL);
@@ -567,27 +567,27 @@ Dir_HasWildcards(char *name)
int wild = 0, brace = 0, bracket = 0;
for (cp = name; *cp; cp++) {
- switch(*cp) {
+ switch (*cp) {
case '{':
- brace++;
- wild = 1;
- break;
+ brace++;
+ wild = 1;
+ break;
case '}':
- brace--;
- break;
+ brace--;
+ break;
case '[':
- bracket++;
- wild = 1;
- break;
+ bracket++;
+ wild = 1;
+ break;
case ']':
- bracket--;
- break;
+ bracket--;
+ break;
case '?':
case '*':
- wild = 1;
- break;
+ wild = 1;
+ break;
default:
- break;
+ break;
}
}
return wild && bracket == 0 && brace == 0;
@@ -618,9 +618,9 @@ Dir_HasWildcards(char *name)
static int
DirMatchFiles(const char *pattern, Path *p, Lst expansions)
{
- Hash_Search search; /* Index into the directory's table */
- Hash_Entry *entry; /* Current entry in the table */
- Boolean isDot; /* TRUE if the directory being searched is . */
+ Hash_Search search; /* Index into the directory's table */
+ Hash_Entry *entry; /* Current entry in the table */
+ Boolean isDot; /* TRUE if the directory being searched is . */
isDot = (*p->name == '.' && p->name[1] == '\0');
@@ -679,7 +679,7 @@ static Boolean
contains_wildcard(const char *p)
{
for (; *p != '\0'; p++) {
- switch(*p) {
+ switch (*p) {
case '*':
case '?':
case '{':
@@ -805,8 +805,8 @@ DirExpandCurly(const char *word, const c
static void
DirExpandInt(const char *word, Lst path, Lst expansions)
{
- LstNode ln; /* Current node */
- Path *p; /* Directory in the node */
+ LstNode ln; /* Current node */
+ Path *p; /* Directory in the node */
if (Lst_Open(path) == SUCCESS) {
while ((ln = Lst_Next(path)) != NULL) {
@@ -863,7 +863,7 @@ DirPrintWord(void *word, void *dummy MAK
void
Dir_Expand(const char *word, Lst path, Lst expansions)
{
- const char *cp;
+ const char *cp;
if (DEBUG(DIR)) {
fprintf(debug_file, "Expanding \"%s\"... ", word);
@@ -894,7 +894,7 @@ Dir_Expand(const char *word, Lst path, L
/*
* Back up to the start of the component
*/
- char *dirpath;
+ char *dirpath;
while (cp > word && *cp != '/') {
cp--;
@@ -922,7 +922,7 @@ Dir_Expand(const char *word, Lst path, L
*dp = '\0';
path = Lst_Init(FALSE);
(void)Dir_AddDir(path, dirpath);
- DirExpandInt(cp+1, path, expansions);
+ DirExpandInt(cp + 1, path, expansions);
Lst_Destroy(path, NULL);
}
} else {
@@ -972,7 +972,7 @@ static char *
DirLookup(Path *p, const char *name MAKE_ATTR_UNUSED, const char *cp,
Boolean hasSlash MAKE_ATTR_UNUSED)
{
- char *file; /* the current filename to check */
+ char *file; /* the current filename to check */
if (DEBUG(DIR)) {
fprintf(debug_file, " %s ...\n", p->name);
@@ -1008,8 +1008,8 @@ DirLookup(Path *p, const char *name MAKE
static char *
DirLookupSubdir(Path *p, const char *name)
{
- struct stat stb; /* Buffer for stat, if necessary */
- char *file; /* the current filename to check */
+ struct stat stb; /* Buffer for stat, if necessary */
+ char *file; /* the current filename to check */
if (p != dot) {
file = str_concat(p->name, name, STR_ADDSLASH);
@@ -1050,40 +1050,40 @@ DirLookupSubdir(Path *p, const char *nam
static char *
DirLookupAbs(Path *p, const char *name, const char *cp)
{
- char *p1; /* pointer into p->name */
- const char *p2; /* pointer into name */
+ char *p1; /* pointer into p->name */
+ const char *p2; /* pointer into name */
- if (DEBUG(DIR)) {
- fprintf(debug_file, " %s ...\n", p->name);
- }
-
- /*
- * If the file has a leading path component and that component
- * exactly matches the entire name of the current search
- * directory, we can attempt another cache lookup. And if we don't
- * have a hit, we can safely assume the file does not exist at all.
- */
- for (p1 = p->name, p2 = name; *p1 && *p1 == *p2; p1++, p2++) {
- continue;
- }
- if (*p1 != '\0' || p2 != cp - 1) {
- return NULL;
- }
+ if (DEBUG(DIR)) {
+ fprintf(debug_file, " %s ...\n", p->name);
+ }
- if (Hash_FindEntry(&p->files, cp) == NULL) {
- if (DEBUG(DIR)) {
- fprintf(debug_file, " must be here but isn't -- returning\n");
- }
- /* Return empty string: terminates search */
- return bmake_strdup("");
- }
+ /*
+ * If the file has a leading path component and that component
+ * exactly matches the entire name of the current search
+ * directory, we can attempt another cache lookup. And if we don't
+ * have a hit, we can safely assume the file does not exist at all.
+ */
+ for (p1 = p->name, p2 = name; *p1 && *p1 == *p2; p1++, p2++) {
+ continue;
+ }
+ if (*p1 != '\0' || p2 != cp - 1) {
+ return NULL;
+ }
- p->hits += 1;
- hits += 1;
+ if (Hash_FindEntry(&p->files, cp) == NULL) {
if (DEBUG(DIR)) {
- fprintf(debug_file, " returning %s\n", name);
+ fprintf(debug_file, " must be here but isn't -- returning\n");
}
- return bmake_strdup(name);
+ /* Return empty string: terminates search */
+ return bmake_strdup("");
+ }
+
+ p->hits += 1;
+ hits += 1;
+ if (DEBUG(DIR)) {
+ fprintf(debug_file, " returning %s\n", name);
+ }
+ return bmake_strdup(name);
}
/*-
@@ -1103,25 +1103,24 @@ static char *
DirFindDot(Boolean hasSlash MAKE_ATTR_UNUSED, const char *name, const char *cp)
{
- if (Hash_FindEntry(&dot->files, cp) != NULL) {
- if (DEBUG(DIR)) {
- fprintf(debug_file, " in '.'\n");
- }
- hits += 1;
- dot->hits += 1;
- return bmake_strdup(name);
+ if (Hash_FindEntry(&dot->files, cp) != NULL) {
+ if (DEBUG(DIR)) {
+ fprintf(debug_file, " in '.'\n");
}
- if (cur &&
- Hash_FindEntry(&cur->files, cp) != NULL) {
- if (DEBUG(DIR)) {
- fprintf(debug_file, " in ${.CURDIR} = %s\n", cur->name);
- }
- hits += 1;
- cur->hits += 1;
- return str_concat(cur->name, cp, STR_ADDSLASH);
+ hits += 1;
+ dot->hits += 1;
+ return bmake_strdup(name);
+ }
+ if (cur && Hash_FindEntry(&cur->files, cp) != NULL) {
+ if (DEBUG(DIR)) {
+ fprintf(debug_file, " in ${.CURDIR} = %s\n", cur->name);
}
+ hits += 1;
+ cur->hits += 1;
+ return str_concat(cur->name, cp, STR_ADDSLASH);
+ }
- return NULL;
+ return NULL;
}
/*-
@@ -1149,14 +1148,14 @@ DirFindDot(Boolean hasSlash MAKE_ATTR_UN
char *
Dir_FindFile(const char *name, Lst path)
{
- LstNode ln; /* a list element */
- char *file; /* the current filename to check */
- Path *p; /* current path member */
- const char *cp; /* Terminal name of file */
- Boolean hasLastDot = FALSE; /* true we should search dot last */
- Boolean hasSlash; /* true if 'name' contains a / */
- struct stat stb; /* Buffer for stat, if necessary */
- const char *trailing_dot = ".";
+ LstNode ln; /* a list element */
+ char *file; /* the current filename to check */
+ Path *p; /* current path member */
+ const char *cp; /* Terminal name of file */
+ Boolean hasLastDot = FALSE; /* true we should search dot last */
+ Boolean hasSlash; /* true if 'name' contains a / */
+ struct stat stb; /* Buffer for stat, if necessary */
+ const char *trailing_dot = ".";
/*
* Find the final component of the name and note whether it has a
@@ -1201,41 +1200,39 @@ Dir_FindFile(const char *name, Lst path)
* of each of the directories on the search path.
*/
if (!hasSlash || (cp - name == 2 && *name == '.')) {
- /*
- * We look through all the directories on the path seeking one which
- * contains the final component of the given name. If such a beast
- * is found, we concatenate the directory name and the final
- * component and return the resulting string. If we don't find any
- * such thing, we go on to phase two...
- *
- * No matter what, we always look for the file in the current
- * directory before anywhere else (unless we found the magic
- * DOTLAST path, in which case we search it last) and we *do not*
- * add the ./ to it if it exists.
- * This is so there are no conflicts between what the user
- * specifies (fish.c) and what pmake finds (./fish.c).
- */
- if (!hasLastDot &&
- (file = DirFindDot(hasSlash, name, cp)) != NULL) {
- Lst_Close(path);
- return file;
- }
+ /*
+ * We look through all the directories on the path seeking one which
+ * contains the final component of the given name. If such a beast
+ * is found, we concatenate the directory name and the final
+ * component and return the resulting string. If we don't find any
+ * such thing, we go on to phase two...
+ *
+ * No matter what, we always look for the file in the current
+ * directory before anywhere else (unless we found the magic
+ * DOTLAST path, in which case we search it last) and we *do not*
+ * add the ./ to it if it exists.
+ * This is so there are no conflicts between what the user
+ * specifies (fish.c) and what pmake finds (./fish.c).
+ */
+ if (!hasLastDot && (file = DirFindDot(hasSlash, name, cp)) != NULL) {
+ Lst_Close(path);
+ return file;
+ }
- while ((ln = Lst_Next(path)) != NULL) {
- p = (Path *)Lst_Datum(ln);
- if (p == dotLast)
- continue;
- if ((file = DirLookup(p, name, cp, hasSlash)) != NULL) {
- Lst_Close(path);
- return file;
- }
+ while ((ln = Lst_Next(path)) != NULL) {
+ p = (Path *)Lst_Datum(ln);
+ if (p == dotLast)
+ continue;
+ if ((file = DirLookup(p, name, cp, hasSlash)) != NULL) {
+ Lst_Close(path);
+ return file;
}
+ }
- if (hasLastDot &&
- (file = DirFindDot(hasSlash, name, cp)) != NULL) {
- Lst_Close(path);
- return file;
- }
+ if (hasLastDot && (file = DirFindDot(hasSlash, name, cp)) != NULL) {
+ Lst_Close(path);
+ return file;
+ }
}
Lst_Close(path);
@@ -1267,20 +1264,20 @@ Dir_FindFile(const char *name, Lst path)
}
if (name[0] != '/') {
- Boolean checkedDot = FALSE;
+ Boolean checkedDot = FALSE;
if (DEBUG(DIR)) {
fprintf(debug_file, " Trying subdirectories...\n");
}
if (!hasLastDot) {
- if (dot) {
- checkedDot = TRUE;
- if ((file = DirLookupSubdir(dot, name)) != NULL)
- return file;
- }
- if (cur && (file = DirLookupSubdir(cur, name)) != NULL)
- return file;
+ if (dot) {
+ checkedDot = TRUE;
+ if ((file = DirLookupSubdir(dot, name)) != NULL)
+ return file;
+ }
+ if (cur && (file = DirLookupSubdir(cur, name)) != NULL)
+ return file;
}
(void)Lst_Open(path);
@@ -1289,8 +1286,8 @@ Dir_FindFile(const char *name, Lst path)
if (p == dotLast)
continue;
if (p == dot) {
- if (checkedDot)
- continue;
+ if (checkedDot)
+ continue;
checkedDot = TRUE;
}
if ((file = DirLookupSubdir(p, name)) != NULL) {
@@ -1301,13 +1298,13 @@ Dir_FindFile(const char *name, Lst path)
Lst_Close(path);
if (hasLastDot) {
- if (dot && !checkedDot) {
- checkedDot = TRUE;
- if ((file = DirLookupSubdir(dot, name)) != NULL)
- return file;
- }
- if (cur && (file = DirLookupSubdir(cur, name)) != NULL)
- return file;
+ if (dot && !checkedDot) {
+ checkedDot = TRUE;
+ if ((file = DirLookupSubdir(dot, name)) != NULL)
+ return file;
+ }
+ if (cur && (file = DirLookupSubdir(cur, name)) != NULL)
+ return file;
}
if (checkedDot) {
@@ -1336,8 +1333,8 @@ Dir_FindFile(const char *name, Lst path)
fprintf(debug_file, " Trying exact path matches...\n");
}
- if (!hasLastDot && cur && ((file = DirLookupAbs(cur, name, cp))
- != NULL)) {
+ if (!hasLastDot && cur &&
+ ((file = DirLookupAbs(cur, name, cp)) != NULL)) {
if (file[0] == '\0') {
free(file);
return NULL;
@@ -1361,8 +1358,8 @@ Dir_FindFile(const char *name, Lst path)
}
Lst_Close(path);
- if (hasLastDot && cur && ((file = DirLookupAbs(cur, name, cp))
- != NULL)) {
+ if (hasLastDot && cur &&
+ ((file = DirLookupAbs(cur, name, cp)) != NULL)) {
if (file[0] == '\0') {
free(file);
return NULL;
@@ -1449,61 +1446,61 @@ Dir_FindFile(const char *name, Lst path)
*-----------------------------------------------------------------------
*/
int
-Dir_FindHereOrAbove(char *here, char *search_path, char *result, int rlen) {
-
- struct stat st;
- char dirbase[MAXPATHLEN + 1], *db_end;
- char try[MAXPATHLEN + 1], *try_end;
-
- /* copy out our starting point */
- snprintf(dirbase, sizeof(dirbase), "%s", here);
- db_end = dirbase + strlen(dirbase);
-
- /* loop until we determine a result */
- while (1) {
-
- /* try and stat(2) it ... */
- snprintf(try, sizeof(try), "%s/%s", dirbase, search_path);
- if (cached_stat(try, &st) != -1) {
- /*
- * success! if we found a file, chop off
- * the filename so we return a directory.
- */
- if ((st.st_mode & S_IFMT) != S_IFDIR) {
- try_end = try + strlen(try);
- while (try_end > try && *try_end != '/')
- try_end--;
- if (try_end > try)
- *try_end = 0; /* chop! */
- }
-
- /*
- * done!
- */
- snprintf(result, rlen, "%s", try);
- return 1;
- }
-
- /*
- * nope, we didn't find it. if we used up dirbase we've
- * reached the root and failed.
- */
- if (db_end == dirbase)
- break; /* failed! */
+Dir_FindHereOrAbove(char *here, char *search_path, char *result, int rlen)
+{
+ struct stat st;
+ char dirbase[MAXPATHLEN + 1], *db_end;
+ char try[MAXPATHLEN + 1], *try_end;
+
+ /* copy out our starting point */
+ snprintf(dirbase, sizeof(dirbase), "%s", here);
+ db_end = dirbase + strlen(dirbase);
+
+ /* loop until we determine a result */
+ while (1) {
+
+ /* try and stat(2) it ... */
+ snprintf(try, sizeof(try), "%s/%s", dirbase, search_path);
+ if (cached_stat(try, &st) != -1) {
+ /*
+ * success! if we found a file, chop off
+ * the filename so we return a directory.
+ */
+ if ((st.st_mode & S_IFMT) != S_IFDIR) {
+ try_end = try + strlen(try);
+ while (try_end > try && *try_end != '/')
+ try_end--;
+ if (try_end > try)
+ *try_end = 0; /* chop! */
+ }
- /*
- * truncate dirbase from the end to move up a dir
- */
- while (db_end > dirbase && *db_end != '/')
- db_end--;
- *db_end = 0; /* chop! */
+ /*
+ * done!
+ */
+ snprintf(result, rlen, "%s", try);
+ return 1;
+ }
- } /* while (1) */
+ /*
+ * nope, we didn't find it. if we used up dirbase we've
+ * reached the root and failed.
+ */
+ if (db_end == dirbase)
+ break; /* failed! */
/*
- * we failed...
+ * truncate dirbase from the end to move up a dir
*/
- return 0;
+ while (db_end > dirbase && *db_end != '/')
+ db_end--;
+ *db_end = 0; /* chop! */
+
+ } /* while (1) */
+
+ /*
+ * we failed...
+ */
+ return 0;
}
/*-
@@ -1527,8 +1524,8 @@ Dir_FindHereOrAbove(char *here, char *se
int
Dir_MTime(GNode *gn, Boolean recheck)
{
- char *fullName; /* the full pathname of name */
- struct stat stb; /* buffer for finding the mod time */
+ char *fullName; /* the full pathname of name */
+ struct stat stb; /* buffer for finding the mod time */
if (gn->type & OP_ARCHV) {
return Arch_MTime(gn);
@@ -1561,15 +1558,16 @@ Dir_MTime(GNode *gn, Boolean recheck)
gn->path = bmake_strdup(fullName);
if (!Job_RunTarget(".STALE", gn->fname))
fprintf(stdout,
- "%s: %s, %d: ignoring stale %s for %s, "
- "found %s\n", progname, gn->fname, gn->lineno,
- makeDependfile, gn->name, fullName);
+ "%s: %s, %d: ignoring stale %s for %s, "
+ "found %s\n", progname, gn->fname,
+ gn->lineno,
+ makeDependfile, gn->name, fullName);
}
}
}
if (DEBUG(DIR))
fprintf(debug_file, "Found '%s' as '%s'\n",
- gn->name, fullName ? fullName : "(not found)" );
+ gn->name, fullName ? fullName : "(not found)");
}
} else {
fullName = gn->path;
@@ -1620,10 +1618,10 @@ Dir_MTime(GNode *gn, Boolean recheck)
Path *
Dir_AddDir(Lst path, const char *name)
{
- LstNode ln = NULL; /* node in case Path structure is found */
- Path *p = NULL; /* pointer to new Path structure */
- DIR *d; /* for reading directory */
- struct dirent *dp; /* entry in directory */
+ LstNode ln = NULL; /* node in case Path structure is found */
+ Path *p = NULL; /* pointer to new Path structure */
+ DIR *d; /* for reading directory */
+ struct dirent *dp; /* entry in directory */
if (strcmp(name, ".DOTLAST") == 0) {
ln = Lst_Find(path, name, DirFindName);
@@ -1726,10 +1724,11 @@ Dir_CopyDir(void *p)
char *
Dir_MakeFlags(const char *flag, Lst path)
{
- char *str; /* the string which will be returned */
- char *s1, *s2;/* the current directory preceded by 'flag' */
- LstNode ln; /* the node of the current directory */
- Path *p; /* the structure describing the current directory */
+ char *str; /* the string which will be returned */
+ char *s1, *s2; /* the current directory preceded by 'flag' */
+ LstNode ln; /* the node of the current directory */
+ Path *p; /* the structure describing the current
+ * directory */
str = bmake_strdup("");
@@ -1768,11 +1767,11 @@ Dir_MakeFlags(const char *flag, Lst path
void
Dir_Destroy(void *pp)
{
- Path *p = (Path *)pp;
+ Path *p = (Path *)pp;
p->refCount -= 1;
if (p->refCount == 0) {
- LstNode ln;
+ LstNode ln;
ln = Lst_Member(openDirectories, p);
(void)Lst_Remove(openDirectories, ln);
@@ -1803,7 +1802,7 @@ Dir_Destroy(void *pp)
void
Dir_ClearPath(Lst path)
{
- Path *p;
+ Path *p;
while (!Lst_IsEmpty(path)) {
p = (Path *)Lst_DeQueue(path);
Dir_Destroy(p);
@@ -1833,7 +1832,7 @@ void
Dir_Concat(Lst path1, Lst path2)
{
LstNode ln;
- Path *p;
+ Path *p;
for (ln = Lst_First(path2); ln != NULL; ln = Lst_Succ(ln)) {
p = (Path *)Lst_Datum(ln);
@@ -1848,19 +1847,21 @@ Dir_Concat(Lst path1, Lst path2)
void
Dir_PrintDirectories(void)
{
- LstNode ln;
- Path *p;
+ LstNode ln;
+ Path *p;
fprintf(debug_file, "#*** Directory Cache:\n");
- fprintf(debug_file, "# Stats: %d hits %d misses %d near misses %d losers (%d%%)\n",
- hits, misses, nearmisses, bigmisses,
- (hits+bigmisses+nearmisses ?
- hits * 100 / (hits + bigmisses + nearmisses) : 0));
+ fprintf(debug_file,
+ "# Stats: %d hits %d misses %d near misses %d losers (%d%%)\n",
+ hits, misses, nearmisses, bigmisses,
+ (hits + bigmisses + nearmisses ?
+ hits * 100 / (hits + bigmisses + nearmisses) : 0));
fprintf(debug_file, "# %-20s referenced\thits\n", "directory");
if (Lst_Open(openDirectories) == SUCCESS) {
while ((ln = Lst_Next(openDirectories)) != NULL) {
p = (Path *)Lst_Datum(ln);
- fprintf(debug_file, "# %-20s %10d\t%4d\n", p->name, p->refCount, p->hits);
+ fprintf(debug_file, "# %-20s %10d\t%4d\n", p->name, p->refCount,
+ p->hits);
}
Lst_Close(openDirectories);
}
Index: src/usr.bin/make/for.c
diff -u src/usr.bin/make/for.c:1.62 src/usr.bin/make/for.c:1.63
--- src/usr.bin/make/for.c:1.62 Sat Aug 8 18:54:04 2020
+++ src/usr.bin/make/for.c Sun Aug 9 19:51:02 2020
@@ -1,4 +1,4 @@
-/* $NetBSD: for.c,v 1.62 2020/08/08 18:54:04 rillig Exp $ */
+/* $NetBSD: for.c,v 1.63 2020/08/09 19:51:02 rillig Exp $ */
/*
* Copyright (c) 1992, The Regents of the University of California.
@@ -30,14 +30,14 @@
*/
#ifndef MAKE_NATIVE
-static char rcsid[] = "$NetBSD: for.c,v 1.62 2020/08/08 18:54:04 rillig Exp $";
+static char rcsid[] = "$NetBSD: for.c,v 1.63 2020/08/09 19:51:02 rillig Exp $";
#else
#include <sys/cdefs.h>
#ifndef lint
#if 0
static char sccsid[] = "@(#)for.c 8.1 (Berkeley) 6/6/93";
#else
-__RCSID("$NetBSD: for.c,v 1.62 2020/08/08 18:54:04 rillig Exp $");
+__RCSID("$NetBSD: for.c,v 1.63 2020/08/09 19:51:02 rillig Exp $");
#endif
#endif /* not lint */
#endif
@@ -83,33 +83,32 @@ __RCSID("$NetBSD: for.c,v 1.62 2020/08/0
* For_Run.
*/
-static int forLevel = 0; /* Nesting level */
+static int forLevel = 0; /* Nesting level */
/*
* State of a for loop.
*/
typedef struct {
- Buffer buf; /* Body of loop */
- strlist_t vars; /* Iteration variables */
- strlist_t items; /* Substitution items */
- char *parse_buf;
- int short_var;
- int sub_next;
+ Buffer buf; /* Body of loop */
+ strlist_t vars; /* Iteration variables */
+ strlist_t items; /* Substitution items */
+ char *parse_buf;
+ int short_var;
+ int sub_next;
} For;
-static For *accumFor; /* Loop being accumulated */
+static For *accumFor; /* Loop being accumulated */
-
static char *
make_str(const char *ptr, int len)
{
- char *new_ptr;
+ char *new_ptr;
- new_ptr = bmake_malloc(len + 1);
- memcpy(new_ptr, ptr, len);
- new_ptr[len] = 0;
- return new_ptr;
+ new_ptr = bmake_malloc(len + 1);
+ memcpy(new_ptr, ptr, len);
+ new_ptr[len] = 0;
+ return new_ptr;
}
static void
@@ -155,7 +154,7 @@ For_Eval(char *line)
int n, nwords;
/* Skip the '.' and any following whitespace */
- for (ptr++; *ptr && isspace((unsigned char) *ptr); ptr++)
+ for (ptr++; *ptr && isspace((unsigned char)*ptr); ptr++)
continue;
/*
@@ -163,8 +162,8 @@ For_Eval(char *line)
* a for.
*/
if (ptr[0] != 'f' || ptr[1] != 'o' || ptr[2] != 'r' ||
- !isspace((unsigned char) ptr[3])) {
- if (ptr[0] == 'e' && strncmp(ptr+1, "ndfor", 5) == 0) {
+ !isspace((unsigned char)ptr[3])) {
+ if (ptr[0] == 'e' && strncmp(ptr + 1, "ndfor", 5) == 0) {
Parse_Error(PARSE_FATAL, "for-less endfor");
return -1;
}
@@ -181,7 +180,7 @@ For_Eval(char *line)
/* Grab the variables. Terminate on "in". */
for (;; ptr += len) {
- while (*ptr && isspace((unsigned char) *ptr))
+ while (*ptr && isspace((unsigned char)*ptr))
ptr++;
if (*ptr == '\0') {
Parse_Error(PARSE_FATAL, "missing `in' in for");
@@ -205,7 +204,7 @@ For_Eval(char *line)
return -1;
}
- while (*ptr && isspace((unsigned char) *ptr))
+ while (*ptr && isspace((unsigned char)*ptr))
ptr++;
/*
@@ -232,7 +231,7 @@ For_Eval(char *line)
continue;
escapes = 0;
while ((ch = *ptr++)) {
- switch(ch) {
+ switch (ch) {
case ':':
case '$':
case '\\':
@@ -288,17 +287,17 @@ For_Accum(char *line)
if (*ptr == '.') {
- for (ptr++; *ptr && isspace((unsigned char) *ptr); ptr++)
+ for (ptr++; *ptr && isspace((unsigned char)*ptr); ptr++)
continue;
if (strncmp(ptr, "endfor", 6) == 0 &&
- (isspace((unsigned char) ptr[6]) || !ptr[6])) {
+ (isspace((unsigned char)ptr[6]) || !ptr[6])) {
if (DEBUG(FOR))
(void)fprintf(debug_file, "For: end for %d\n", forLevel);
if (--forLevel <= 0)
return 0;
} else if (strncmp(ptr, "for", 3) == 0 &&
- isspace((unsigned char) ptr[3])) {
+ isspace((unsigned char)ptr[3])) {
forLevel++;
if (DEBUG(FOR))
(void)fprintf(debug_file, "For: new loop %d\n", forLevel);
@@ -310,7 +309,6 @@ For_Accum(char *line)
return 1;
}
-
static size_t
for_var_len(const char *var)
@@ -354,7 +352,7 @@ for_substitute(Buffer *cmds, strlist_t *
/* If there were no escapes, or the only escape is the other variable
* terminator, then just substitute the full string */
if (!(strlist_info(items, item_no) &
- (ech == ')' ? ~FOR_SUB_ESCAPE_BRACE : ~FOR_SUB_ESCAPE_PAREN))) {
+ (ech == ')' ? ~FOR_SUB_ESCAPE_BRACE : ~FOR_SUB_ESCAPE_PAREN))) {
Buf_AddStr(cmds, item);
return;
}
Index: src/usr.bin/make/strlist.c
diff -u src/usr.bin/make/strlist.c:1.4 src/usr.bin/make/strlist.c:1.5
--- src/usr.bin/make/strlist.c:1.4 Sat Jan 24 11:59:39 2009
+++ src/usr.bin/make/strlist.c Sun Aug 9 19:51:02 2020
@@ -1,4 +1,4 @@
-/* $NetBSD: strlist.c,v 1.4 2009/01/24 11:59:39 dsl Exp $ */
+/* $NetBSD: strlist.c,v 1.5 2020/08/09 19:51:02 rillig Exp $ */
/*-
* Copyright (c) 2008 - 2009 The NetBSD Foundation, Inc.
@@ -33,11 +33,11 @@
*/
#ifndef MAKE_NATIVE
-static char rcsid[] = "$NetBSD: strlist.c,v 1.4 2009/01/24 11:59:39 dsl Exp $";
+static char rcsid[] = "$NetBSD: strlist.c,v 1.5 2020/08/09 19:51:02 rillig Exp $";
#else
#include <sys/cdefs.h>
#ifndef lint
-__RCSID("$NetBSD: strlist.c,v 1.4 2009/01/24 11:59:39 dsl Exp $");
+__RCSID("$NetBSD: strlist.c,v 1.5 2020/08/09 19:51:02 rillig Exp $");
#endif /* not lint */
#endif
@@ -76,18 +76,18 @@ strlist_add_str(strlist_t *sl, char *str
strlist_item_t *items;
if (str == NULL)
- return;
+ return;
n = sl->sl_num + 1;
sl->sl_num = n;
items = sl->sl_items;
if (n >= sl->sl_max) {
- items = bmake_realloc(items, (n + 7) * sizeof *sl->sl_items);
- sl->sl_items = items;
- sl->sl_max = n + 6;
+ items = bmake_realloc(items, (n + 7) * sizeof *sl->sl_items);
+ sl->sl_items = items;
+ sl->sl_max = n + 6;
}
items += n - 1;
items->si_str = str;
items->si_info = info;
- items[1].si_str = NULL; /* STRLIST_FOREACH() terminator */
+ items[1].si_str = NULL; /* STRLIST_FOREACH() terminator */
}