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) {