make(1): consistently use boolean expressions in conditions

Most of the make code already followed the style of explicitly writing
(ptr != NULL) instead of the shorter (ptr) in conditions.

The remaining 50 instances have been found by an experimental,
unpublished check in lint(1) that treats bool expressions as
incompatible to any other scalar type, just as in Java, C#, Pascal and
several other languages.

The only unsafe operation on Boolean that is left over is (flags &
FLAG), for an enum implementing a bit set.  If Boolean is an ordinary
integer type (the default), some high bits may get lost.  But if Boolean
is the same as _Bool (by compiling with -DUSE_C99_BOOLEAN), C99 6.3.1.2
defines that a conversion from any scalar to the type _Bool acts as a
comparison to 0, which cannot lose any bits.
This commit is contained in:
rillig 2021-01-10 21:20:46 +00:00
parent 8be367b3f6
commit 31940a95cd
15 changed files with 77 additions and 74 deletions

View File

@ -1,4 +1,4 @@
/* $NetBSD: compat.c,v 1.218 2020/12/30 10:03:16 rillig Exp $ */
/* $NetBSD: compat.c,v 1.219 2021/01/10 21:20:46 rillig Exp $ */
/*
* Copyright (c) 1988, 1989, 1990 The Regents of the University of California.
@ -96,7 +96,7 @@
#include "pathnames.h"
/* "@(#)compat.c 8.2 (Berkeley) 3/19/94" */
MAKE_RCSID("$NetBSD: compat.c,v 1.218 2020/12/30 10:03:16 rillig Exp $");
MAKE_RCSID("$NetBSD: compat.c,v 1.219 2021/01/10 21:20:46 rillig Exp $");
static GNode *curTarg = NULL;
static pid_t compatChild;
@ -281,7 +281,7 @@ Compat_RunCommand(const char *cmdp, GNode *gn, StringListNode *ln)
errCheck = FALSE;
else if (*cmd == '+') {
doIt = TRUE;
if (!shellName) /* we came here from jobs */
if (shellName == NULL) /* we came here from jobs */
Shell_Init();
} else
break;
@ -326,7 +326,7 @@ Compat_RunCommand(const char *cmdp, GNode *gn, StringListNode *ln)
/* The following work for any of the builtin shell specs. */
int shargc = 0;
shargv[shargc++] = shellPath;
if (errCheck && shellErrFlag)
if (errCheck && shellErrFlag != NULL)
shargv[shargc++] = shellErrFlag;
shargv[shargc++] = DEBUG(SHELL) ? "-xc" : "-c";
shargv[shargc++] = cmd;
@ -707,7 +707,7 @@ Compat_Run(GNodeList *targs)
{
GNode *errorNode = NULL;
if (!shellName)
if (shellName == NULL)
Shell_Init();
InitSignals();

View File

@ -1,4 +1,4 @@
/* $NetBSD: cond.c,v 1.234 2021/01/09 16:06:09 rillig Exp $ */
/* $NetBSD: cond.c,v 1.235 2021/01/10 21:20:46 rillig Exp $ */
/*
* Copyright (c) 1988, 1989, 1990 The Regents of the University of California.
@ -95,7 +95,7 @@
#include "dir.h"
/* "@(#)cond.c 8.2 (Berkeley) 1/2/94" */
MAKE_RCSID("$NetBSD: cond.c,v 1.234 2021/01/09 16:06:09 rillig Exp $");
MAKE_RCSID("$NetBSD: cond.c,v 1.235 2021/01/10 21:20:46 rillig Exp $");
/*
* The parsing of conditional expressions is based on this grammar:
@ -171,7 +171,7 @@ static unsigned int cond_min_depth = 0; /* depth at makefile open */
*/
static Boolean lhsStrict;
static int
static Boolean
is_token(const char *str, const char *tok, size_t len)
{
return strncmp(str, tok, len) == 0 && !ch_isalpha(str[len]);

View File

@ -1,4 +1,4 @@
/* $NetBSD: dir.c,v 1.254 2020/12/30 10:03:16 rillig Exp $ */
/* $NetBSD: dir.c,v 1.255 2021/01/10 21:20:46 rillig Exp $ */
/*
* Copyright (c) 1988, 1989, 1990 The Regents of the University of California.
@ -137,7 +137,7 @@
#include "job.h"
/* "@(#)dir.c 8.2 (Berkeley) 1/2/94" */
MAKE_RCSID("$NetBSD: dir.c,v 1.254 2020/12/30 10:03:16 rillig Exp $");
MAKE_RCSID("$NetBSD: dir.c,v 1.255 2021/01/10 21:20:46 rillig Exp $");
/*
* A search path is a list of CachedDir structures. A CachedDir has in it the
@ -1168,7 +1168,8 @@ Dir_FindFile(const char *name, SearchPath *path)
if ((file = DirLookupSubdir(dot, name)) != NULL)
return file;
}
if (cur && (file = DirLookupSubdir(cur, name)) != NULL)
if (cur != NULL &&
(file = DirLookupSubdir(cur, name)) != NULL)
return file;
}
@ -1186,12 +1187,13 @@ Dir_FindFile(const char *name, SearchPath *path)
}
if (seenDotLast) {
if (dot && !checkedDot) {
if (dot != NULL && !checkedDot) {
checkedDot = TRUE;
if ((file = DirLookupSubdir(dot, name)) != NULL)
return file;
}
if (cur && (file = DirLookupSubdir(cur, name)) != NULL)
if (cur != NULL &&
(file = DirLookupSubdir(cur, name)) != NULL)
return file;
}
@ -1219,7 +1221,7 @@ Dir_FindFile(const char *name, SearchPath *path)
*/
DEBUG0(DIR, " Trying exact path matches...\n");
if (!seenDotLast && cur &&
if (!seenDotLast && cur != NULL &&
((file = DirLookupAbs(cur, name, base)) != NULL)) {
if (file[0] == '\0') {
free(file);
@ -1241,7 +1243,7 @@ Dir_FindFile(const char *name, SearchPath *path)
}
}
if (seenDotLast && cur &&
if (seenDotLast && cur != NULL &&
((file = DirLookupAbs(cur, name, base)) != NULL)) {
if (file[0] == '\0') {
free(file);
@ -1418,7 +1420,7 @@ ResolveFullName(GNode *gn)
fullName = ResolveMovedDepends(gn);
DEBUG2(DIR, "Found '%s' as '%s'\n",
gn->name, fullName ? fullName : "(not found)");
gn->name, fullName != NULL ? fullName : "(not found)");
}
if (fullName == NULL)

View File

@ -1,4 +1,4 @@
/* $NetBSD: filemon_ktrace.c,v 1.10 2021/01/09 16:06:09 rillig Exp $ */
/* $NetBSD: filemon_ktrace.c,v 1.11 2021/01/10 21:20:47 rillig Exp $ */
/*-
* Copyright (c) 2019 The NetBSD Foundation, Inc.
@ -524,7 +524,7 @@ top: /* If the child has exited, nothing to do. */
if (nread == 0) {
if (feof(F->in))
return 0;
assert(ferror(F->in));
assert(ferror(F->in) != 0);
/*
* If interrupted or would block, there may be
* more events. Otherwise fail.
@ -619,7 +619,7 @@ show_paths(struct filemon *F, const struct filemon_state *S,
* Ignore it if it failed or yielded EJUSTRETURN (-2), or if
* we're not producing output.
*/
if (ret->ktr_error && ret->ktr_error != -2)
if (ret->ktr_error != 0 && ret->ktr_error != -2)
return;
if (F->out == NULL)
return;
@ -645,7 +645,7 @@ show_retval(struct filemon *F, const struct filemon_state *S,
* Ignore it if it failed or yielded EJUSTRETURN (-2), or if
* we're not producing output.
*/
if (ret->ktr_error && ret->ktr_error != -2)
if (ret->ktr_error != 0 && ret->ktr_error != -2)
return;
if (F->out == NULL)
return;

View File

@ -1,4 +1,4 @@
/* $NetBSD: for.c,v 1.133 2021/01/09 16:06:09 rillig Exp $ */
/* $NetBSD: for.c,v 1.134 2021/01/10 21:20:46 rillig Exp $ */
/*
* Copyright (c) 1992, The Regents of the University of California.
@ -58,7 +58,7 @@
#include "make.h"
/* "@(#)for.c 8.1 (Berkeley) 6/6/93" */
MAKE_RCSID("$NetBSD: for.c,v 1.133 2021/01/09 16:06:09 rillig Exp $");
MAKE_RCSID("$NetBSD: for.c,v 1.134 2021/01/10 21:20:46 rillig Exp $");
static int forLevel = 0; /* Nesting level */
@ -222,7 +222,7 @@ For_Eval(const char *line)
size_t nitems, nvars;
if ((nitems = f->items.len) > 0 &&
nitems % (nvars = f->vars.len)) {
nitems % (nvars = f->vars.len) != 0) {
Parse_Error(PARSE_FATAL,
"Wrong number of words (%u) in .for "
"substitution list with %u variables",

View File

@ -1,4 +1,4 @@
/* $NetBSD: job.c,v 1.395 2021/01/09 16:06:09 rillig Exp $ */
/* $NetBSD: job.c,v 1.396 2021/01/10 21:20:46 rillig Exp $ */
/*
* Copyright (c) 1988, 1989, 1990 The Regents of the University of California.
@ -143,7 +143,7 @@
#include "trace.h"
/* "@(#)job.c 8.2 (Berkeley) 3/19/94" */
MAKE_RCSID("$NetBSD: job.c,v 1.395 2021/01/09 16:06:09 rillig Exp $");
MAKE_RCSID("$NetBSD: job.c,v 1.396 2021/01/10 21:20:46 rillig Exp $");
/*
* A shell defines how the commands are run. All commands for a target are
@ -425,7 +425,7 @@ static Job **allJobs = NULL;
static nfds_t nJobs = 0;
static void watchfd(Job *);
static void clearfd(Job *);
static int readyfd(Job *);
static Boolean readyfd(Job *);
static char *targPrefix = NULL; /* To identify a job change in the output. */
static Job tokenWaitJob; /* token wait pseudo-job */
@ -441,7 +441,7 @@ enum {
static sigset_t caught_signals; /* Set of signals we handle */
static void JobDoOutput(Job *, Boolean);
static void JobInterrupt(int, int) MAKE_ATTR_DEAD;
static void JobInterrupt(Boolean, int) MAKE_ATTR_DEAD;
static void JobRestartJobs(void);
static void JobSigReset(void);
@ -952,7 +952,7 @@ JobPrintCommand(Job *job, ShellWriter *wr, StringListNode *ln, const char *ucmd)
* set up commands to run through it.
*/
if (!shell->hasErrCtl && shell->runChkTmpl &&
if (!shell->hasErrCtl && shell->runChkTmpl != NULL &&
shell->runChkTmpl[0] != '\0') {
if (job->echo && cmdFlags.echo) {
ShellWriter_EchoOff(wr);
@ -1544,11 +1544,11 @@ JobMakeArgv(Job *job, char **argv)
argc++;
}
} else {
if (!job->ignerr && shell->errFlag) {
if (!job->ignerr && shell->errFlag != NULL) {
argv[argc] = UNCONST(shell->errFlag);
argc++;
}
if (job->echo && shell->echoFlag) {
if (job->echo && shell->echoFlag != NULL) {
argv[argc] = UNCONST(shell->echoFlag);
argc++;
}
@ -2090,7 +2090,7 @@ Job_CatchOutput(void)
return;
for (i = npseudojobs * nfds_per_job(); i < nJobs; i++) {
if (!fds[i].revents)
if (fds[i].revents == 0)
continue;
job = allJobs[i];
if (job->status == JOB_ST_RUNNING)
@ -2150,7 +2150,7 @@ Shell_Init(void)
if (shell->echoFlag == NULL)
shell->echoFlag = "";
if (shell->hasErrCtl && shell->errFlag[0] != '\0') {
if (shellErrFlag &&
if (shellErrFlag != NULL &&
strcmp(shell->errFlag, &shellErrFlag[1]) != 0) {
free(shellErrFlag);
shellErrFlag = NULL;
@ -2509,7 +2509,7 @@ Job_ParseShell(char *line)
Shell_Init();
}
if (shell->echoOn && shell->echoOff)
if (shell->echoOn != NULL && shell->echoOff != NULL)
shell->hasEchoCtl = TRUE;
if (!shell->hasErrCtl) {
@ -2539,7 +2539,7 @@ Job_ParseShell(char *line)
* signo signal received
*/
static void
JobInterrupt(int runINTERRUPT, int signo)
JobInterrupt(Boolean runINTERRUPT, int signo)
{
Job *job; /* job descriptor in that element */
GNode *interrupt; /* the node describing the .INTERRUPT target */
@ -2750,7 +2750,7 @@ clearfd(Job *job)
job->inPollfd = NULL;
}
static int
static Boolean
readyfd(Job *job)
{
if (job->inPollfd == NULL)
@ -2820,7 +2820,7 @@ Job_TokenReturn(void)
jobTokensRunning--;
if (jobTokensRunning < 0)
Punt("token botch");
if (jobTokensRunning || JOB_TOKENS[aborting] != '+')
if (jobTokensRunning != 0 || JOB_TOKENS[aborting] != '+')
JobTokenAdd();
}

View File

@ -1,4 +1,4 @@
/* $NetBSD: main.c,v 1.510 2021/01/09 16:06:09 rillig Exp $ */
/* $NetBSD: main.c,v 1.511 2021/01/10 21:20:46 rillig Exp $ */
/*
* Copyright (c) 1988, 1989, 1990, 1993
@ -110,7 +110,7 @@
#include "trace.h"
/* "@(#)main.c 8.3 (Berkeley) 3/19/94" */
MAKE_RCSID("$NetBSD: main.c,v 1.510 2021/01/09 16:06:09 rillig Exp $");
MAKE_RCSID("$NetBSD: main.c,v 1.511 2021/01/10 21:20:46 rillig Exp $");
#if defined(MAKE_NATIVE) && !defined(lint)
__COPYRIGHT("@(#) Copyright (c) 1988, 1989, 1990, 1993 "
"The Regents of the University of California. "
@ -1774,7 +1774,7 @@ Cmd_Exec(const char *cmd, const char **errfmt)
*errfmt = NULL;
if (!shellName)
if (shellName == NULL)
Shell_Init();
/*
* Set up arguments for shell

View File

@ -1,4 +1,4 @@
/* $NetBSD: make.c,v 1.233 2020/12/30 10:03:16 rillig Exp $ */
/* $NetBSD: make.c,v 1.234 2021/01/10 21:20:46 rillig Exp $ */
/*
* Copyright (c) 1988, 1989, 1990, 1993
@ -103,7 +103,7 @@
#include "job.h"
/* "@(#)make.c 8.1 (Berkeley) 6/6/93" */
MAKE_RCSID("$NetBSD: make.c,v 1.233 2020/12/30 10:03:16 rillig Exp $");
MAKE_RCSID("$NetBSD: make.c,v 1.234 2021/01/10 21:20:46 rillig Exp $");
/* Sequence # to detect recursion. */
static unsigned int checked_seqno = 1;
@ -418,7 +418,7 @@ Make_HandleUse(GNode *cgn, GNode *pgn)
}
(void)Var_Subst(gn->uname, pgn, VARE_WANTRES, &gn->name);
/* TODO: handle errors */
if (gn->uname && strcmp(gn->name, gn->uname) != 0) {
if (gn->uname != NULL && strcmp(gn->name, gn->uname) != 0) {
/* See if we have a target for this node. */
GNode *tgn = Targ_FindNode(gn->name);
if (tgn != NULL)

View File

@ -1,4 +1,4 @@
/* $NetBSD: make.h,v 1.241 2020/12/30 10:03:16 rillig Exp $ */
/* $NetBSD: make.h,v 1.242 2021/01/10 21:20:46 rillig Exp $ */
/*
* Copyright (c) 1988, 1989, 1990, 1993
@ -136,7 +136,7 @@
* A boolean type is defined as an integer, not an enum, for historic reasons.
* The only allowed values are the constants TRUE and FALSE (1 and 0).
*/
#if defined(USE_C99_BOOLEAN)
#if defined(lint) || defined(USE_C99_BOOLEAN)
#include <stdbool.h>
typedef bool Boolean;
#define FALSE false

View File

@ -1,4 +1,4 @@
/* $NetBSD: meta.c,v 1.167 2021/01/09 16:06:09 rillig Exp $ */
/* $NetBSD: meta.c,v 1.168 2021/01/10 21:20:46 rillig Exp $ */
/*
* Implement 'meta' mode.
@ -124,7 +124,7 @@ meta_open_filemon(BuildMon *pbm)
pbm->mon_fd = -1;
pbm->filemon = NULL;
if (!useFilemon || !pbm->mfp)
if (!useFilemon || pbm->mfp == NULL)
return;
pbm->filemon = filemon_open();
@ -523,7 +523,7 @@ meta_create(BuildMon *pbm, GNode *gn)
fprintf(fp, "CWD %s\n", getcwd(buf, sizeof buf));
fprintf(fp, "TARGET %s\n", tname);
cp = GNode_VarOodate(gn);
if (cp && *cp) {
if (cp != NULL && *cp != '\0') {
fprintf(fp, "OODATE %s\n", cp);
}
if (metaEnv) {
@ -700,7 +700,7 @@ meta_job_child(Job *job)
}
if (pbm->mfp != NULL) {
close(fileno(pbm->mfp));
if (useFilemon && pbm->filemon) {
if (useFilemon && pbm->filemon != NULL) {
pid_t pid;
pid = getpid();
@ -723,7 +723,7 @@ meta_job_parent(Job *job, pid_t pid)
} else {
pbm = &Mybm;
}
if (useFilemon && pbm->filemon) {
if (useFilemon && pbm->filemon != NULL) {
filemon_setpid_parent(pbm->filemon, pid);
}
#endif
@ -740,7 +740,7 @@ meta_job_fd(Job *job)
} else {
pbm = &Mybm;
}
if (useFilemon && pbm->filemon) {
if (useFilemon && pbm->filemon != NULL) {
return filemon_readfd(pbm->filemon);
}
#endif
@ -758,7 +758,7 @@ meta_job_event(Job *job)
} else {
pbm = &Mybm;
}
if (useFilemon && pbm->filemon) {
if (useFilemon && pbm->filemon != NULL) {
return filemon_process(pbm->filemon);
}
#endif
@ -967,7 +967,7 @@ path_starts_with(const char *path, const char *prefix)
return path[n] == '\0' || path[n] == '/';
}
static int
static Boolean
meta_ignore(GNode *gn, const char *p)
{
char fname[MAXPATHLEN];
@ -1037,7 +1037,7 @@ meta_ignore(GNode *gn, const char *p)
* if we detect this we want to reproduce it.
* Setting oodate TRUE will have that effect.
*/
#define CHECK_VALID_META(p) if (!(p && *p)) { \
#define CHECK_VALID_META(p) if (!(p != NULL && *p != '\0')) { \
warnx("%s: %d: malformed", fname, lineno); \
oodate = TRUE; \
continue; \
@ -1436,7 +1436,7 @@ meta_oodate(GNode *gn, Boolean oodate)
}
sdirs[sdx++] = NULL;
for (sdp = sdirs; *sdp && !found; sdp++) {
for (sdp = sdirs; *sdp != NULL && !found; sdp++) {
#ifdef DEBUG_META_MODE
DEBUG3(META, "%s: %d: looking for: %s\n",
fname, lineno, *sdp);
@ -1579,7 +1579,8 @@ meta_oodate(GNode *gn, Boolean oodate)
const char *cp = NULL;
/* if target is in .CURDIR we do not need a meta file */
if (gn->path && (cp = strrchr(gn->path, '/')) && cp > gn->path) {
if (gn->path != NULL && (cp = strrchr(gn->path, '/')) != NULL &&
(cp > gn->path)) {
if (strncmp(curdir, gn->path, (size_t)(cp - gn->path)) != 0) {
cp = NULL; /* not in .CURDIR */
}
@ -1655,7 +1656,7 @@ meta_compat_parent(pid_t child)
close(childPipe[1]); /* child side */
outfd = childPipe[0];
#ifdef USE_FILEMON
metafd = Mybm.filemon ? filemon_readfd(Mybm.filemon) : -1;
metafd = Mybm.filemon != NULL ? filemon_readfd(Mybm.filemon) : -1;
#else
metafd = -1;
#endif
@ -1680,7 +1681,7 @@ meta_compat_parent(pid_t child)
err(1, "select");
}
if (outfd != -1 && FD_ISSET(outfd, &readfds)) do {
if (outfd != -1 && FD_ISSET(outfd, &readfds) != 0) do {
/* XXX this is not line-buffered */
ssize_t nread = read(outfd, buf, sizeof buf - 1);
if (nread == -1)
@ -1695,7 +1696,7 @@ meta_compat_parent(pid_t child)
buf[nread] = '\0';
meta_job_output(NULL, buf, "");
} while (/*CONSTCOND*/0);
if (metafd != -1 && FD_ISSET(metafd, &readfds)) {
if (metafd != -1 && FD_ISSET(metafd, &readfds) != 0) {
if (meta_job_event(NULL) <= 0)
metafd = -1;
}

View File

@ -1,4 +1,4 @@
/* $NetBSD: metachar.h,v 1.12 2020/11/10 00:32:12 rillig Exp $ */
/* $NetBSD: metachar.h,v 1.13 2021/01/10 21:20:46 rillig Exp $ */
/*-
* Copyright (c) 2015 The NetBSD Foundation, Inc.
@ -35,7 +35,7 @@
extern unsigned char _metachar[];
#define is_shell_metachar(c) _metachar[(c) & 0x7f]
#define is_shell_metachar(c) (_metachar[(c) & 0x7f] != 0)
MAKE_INLINE int
needshell(const char *cmd)

View File

@ -1,4 +1,4 @@
/* $NetBSD: parse.c,v 1.525 2020/12/31 17:39:36 rillig Exp $ */
/* $NetBSD: parse.c,v 1.526 2021/01/10 21:20:46 rillig Exp $ */
/*
* Copyright (c) 1988, 1989, 1990, 1993
@ -109,7 +109,7 @@
#include "pathnames.h"
/* "@(#)parse.c 8.3 (Berkeley) 3/19/94" */
MAKE_RCSID("$NetBSD: parse.c,v 1.525 2020/12/31 17:39:36 rillig Exp $");
MAKE_RCSID("$NetBSD: parse.c,v 1.526 2021/01/10 21:20:46 rillig Exp $");
/* types and constants */
@ -2218,7 +2218,7 @@ ParseDoInclude(char *line /* XXX: bad name */)
endc = '"';
/* Skip to matching delimiter */
for (cp = ++file; *cp && *cp != endc; cp++)
for (cp = ++file; *cp != '\0' && *cp != endc; cp++)
continue;
if (*cp != endc) {
@ -2508,7 +2508,7 @@ ParseGmakeExport(char *line)
pp_skip_whitespace(&variable);
for (value = variable; *value && *value != '='; value++)
for (value = variable; *value != '\0' && *value != '='; value++)
continue;
if (*value != '=') {

View File

@ -1,4 +1,4 @@
/* $NetBSD: str.c,v 1.76 2020/12/30 10:03:16 rillig Exp $ */
/* $NetBSD: str.c,v 1.77 2021/01/10 21:20:46 rillig Exp $ */
/*-
* Copyright (c) 1988, 1989, 1990, 1993
@ -71,7 +71,7 @@
#include "make.h"
/* "@(#)str.c 5.8 (Berkeley) 6/1/90" */
MAKE_RCSID("$NetBSD: str.c,v 1.76 2020/12/30 10:03:16 rillig Exp $");
MAKE_RCSID("$NetBSD: str.c,v 1.77 2021/01/10 21:20:46 rillig Exp $");
/* Return the concatenation of s1 and s2, freshly allocated. */
char *
@ -212,7 +212,7 @@ Str_Words(const char *str, Boolean expand)
words[words_len++] = word_start;
word_start = NULL;
if (ch == '\n' || ch == '\0') {
if (expand && inquote) {
if (expand && inquote != '\0') {
free(words);
free(words_buf);
return (Words){ NULL, 0, NULL };

View File

@ -1,4 +1,4 @@
/* $NetBSD: suff.c,v 1.334 2021/01/09 16:06:09 rillig Exp $ */
/* $NetBSD: suff.c,v 1.335 2021/01/10 21:20:46 rillig Exp $ */
/*
* Copyright (c) 1988, 1989, 1990, 1993
@ -114,7 +114,7 @@
#include "dir.h"
/* "@(#)suff.c 8.4 (Berkeley) 3/21/94" */
MAKE_RCSID("$NetBSD: suff.c,v 1.334 2021/01/09 16:06:09 rillig Exp $");
MAKE_RCSID("$NetBSD: suff.c,v 1.335 2021/01/10 21:20:46 rillig Exp $");
typedef List SuffixList;
typedef ListNode SuffixListNode;
@ -288,7 +288,7 @@ Suffix_Unassign(Suffix **var)
static const char *
StrTrimPrefix(const char *pref, const char *str)
{
while (*str && *pref == *str) {
while (*str != '\0' && *pref == *str) {
pref++;
str++;
}

View File

@ -1,4 +1,4 @@
/* $NetBSD: var.c,v 1.779 2021/01/09 16:06:09 rillig Exp $ */
/* $NetBSD: var.c,v 1.780 2021/01/10 21:20:47 rillig Exp $ */
/*
* Copyright (c) 1988, 1989, 1990, 1993
@ -131,7 +131,7 @@
#include "metachar.h"
/* "@(#)var.c 8.3 (Berkeley) 3/19/94" */
MAKE_RCSID("$NetBSD: var.c,v 1.779 2021/01/09 16:06:09 rillig Exp $");
MAKE_RCSID("$NetBSD: var.c,v 1.780 2021/01/10 21:20:47 rillig Exp $");
typedef enum VarFlags {
VAR_NONE = 0,
@ -347,7 +347,7 @@ CanonicalVarname(const char *name)
break;
case 'S':
if (strcmp(name, ".SHELL") == 0) {
if (!shellPath)
if (shellPath == NULL)
Shell_Init();
}
break;
@ -805,7 +805,7 @@ ClearEnv(void)
environ = savedEnv = newenv;
newenv[0] = NULL;
newenv[1] = NULL;
if (cp && *cp)
if (cp != NULL && *cp != '\0')
setenv(MAKE_LEVEL_ENV, cp, 1);
}