Module Name: src
Committed By: rillig
Date: Fri Sep 11 16:23:47 UTC 2020
Modified Files:
src/usr.bin/make: cond.c
Log Message:
make(1): clean up code for evaluating conditions
To generate a diff of this commit:
cvs rdiff -u -r1.131 -r1.132 src/usr.bin/make/cond.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/cond.c
diff -u src/usr.bin/make/cond.c:1.131 src/usr.bin/make/cond.c:1.132
--- src/usr.bin/make/cond.c:1.131 Fri Sep 11 16:22:15 2020
+++ src/usr.bin/make/cond.c Fri Sep 11 16:23:47 2020
@@ -1,4 +1,4 @@
-/* $NetBSD: cond.c,v 1.131 2020/09/11 16:22:15 rillig Exp $ */
+/* $NetBSD: cond.c,v 1.132 2020/09/11 16:23:47 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.131 2020/09/11 16:22:15 rillig Exp $";
+static char rcsid[] = "$NetBSD: cond.c,v 1.132 2020/09/11 16:23:47 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.131 2020/09/11 16:22:15 rillig Exp $");
+__RCSID("$NetBSD: cond.c,v 1.132 2020/09/11 16:23:47 rillig Exp $");
#endif
#endif /* not lint */
#endif
@@ -555,7 +555,7 @@ EvalComparison(const char *lhs, Boolean
if (rhsQuoted || lhsQuoted) {
do_string_compare:
- if (((*op != '!') && (*op != '=')) || (op[1] != '=')) {
+ if ((*op != '!' && *op != '=') || op[1] != '=') {
Parse_Error(PARSE_WARNING,
"String comparison operator should be either == or !=");
return TOK_ERROR;
@@ -583,30 +583,20 @@ EvalComparison(const char *lhs, Boolean
switch (op[0]) {
case '!':
if (op[1] != '=') {
- Parse_Error(PARSE_WARNING,
- "Unknown operator");
+ Parse_Error(PARSE_WARNING, "Unknown operator");
return TOK_ERROR;
}
return left != right;
case '=':
if (op[1] != '=') {
- Parse_Error(PARSE_WARNING,
- "Unknown operator");
+ Parse_Error(PARSE_WARNING, "Unknown operator");
return TOK_ERROR;
}
return left == right;
case '<':
- if (op[1] == '=') {
- return left <= right;
- } else {
- return left < right;
- }
+ return op[1] == '=' ? left <= right : left < right;
case '>':
- if (op[1] == '=') {
- return left >= right;
- } else {
- return left > right;
- }
+ return op[1] == '=' ? left >= right : left > right;
}
return TOK_ERROR;
}
@@ -621,16 +611,11 @@ EvalComparison(const char *lhs, Boolean
static Token
CondParser_Comparison(CondParser *par, Boolean doEval)
{
- Token t;
- const char *lhs;
- const char *rhs;
- const char *op;
- void *lhsFree;
- void *rhsFree;
- Boolean lhsQuoted;
- Boolean rhsQuoted;
+ Token t = TOK_ERROR;
+ const char *lhs, *op, *rhs;
+ void *lhsFree, *rhsFree;
+ Boolean lhsQuoted, rhsQuoted;
- t = TOK_ERROR;
rhs = NULL;
lhsFree = rhsFree = NULL;
lhsQuoted = rhsQuoted = FALSE;
@@ -670,13 +655,12 @@ CondParser_Comparison(CondParser *par, B
CondParser_SkipWhitespace(par);
if (par->p[0] == '\0') {
- Parse_Error(PARSE_WARNING,
- "Missing right-hand-side of operator");
+ Parse_Error(PARSE_WARNING, "Missing right-hand-side of operator");
goto done;
}
rhs = CondParser_String(par, doEval, FALSE, &rhsQuoted, &rhsFree);
- if (!rhs)
+ if (rhs == NULL)
goto done;
if (!doEval) {