Module Name: src
Committed By: rillig
Date: Wed Dec 29 05:16:44 UTC 2021
Modified Files:
src/usr.bin/make: cond.c
Log Message:
make: clean up condition parser
No functional change.
To generate a diff of this commit:
cvs rdiff -u -r1.312 -r1.313 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.312 src/usr.bin/make/cond.c:1.313
--- src/usr.bin/make/cond.c:1.312 Wed Dec 29 05:05:21 2021
+++ src/usr.bin/make/cond.c Wed Dec 29 05:16:44 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: cond.c,v 1.312 2021/12/29 05:05:21 rillig Exp $ */
+/* $NetBSD: cond.c,v 1.313 2021/12/29 05:16:44 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.312 2021/12/29 05:05:21 rillig Exp $");
+MAKE_RCSID("$NetBSD: cond.c,v 1.313 2021/12/29 05:16:44 rillig Exp $");
/*
* The parsing of conditional expressions is based on this grammar:
@@ -989,10 +989,7 @@ CondParser_Eval(CondParser *par)
DEBUG1(COND, "CondParser_Eval: %s\n", par->p);
res = CondParser_Or(par, true);
- if (res == CR_ERROR)
- return CR_ERROR;
-
- if (CondParser_Token(par, false) != TOK_EOF)
+ if (res != CR_ERROR && CondParser_Token(par, false) != TOK_EOF)
return CR_ERROR;
return res;
@@ -1002,12 +999,6 @@ CondParser_Eval(CondParser *par)
* Evaluate the condition, including any side effects from the variable
* expressions in the condition. The condition consists of &&, ||, !,
* function(arg), comparisons and parenthetical groupings thereof.
- *
- * Results:
- * CR_TRUE if the condition was valid grammatically
- * CR_ERROR if not a valid conditional.
- *
- * *out_value is set to the boolean value of the condition
*/
static CondResult
CondEvalExpression(const char *cond, bool plain,
@@ -1285,12 +1276,8 @@ Cond_EvalLine(const char *line)
return CR_FALSE;
}
- if (res == CR_FALSE) {
- cond_states[cond_depth] = IFS_INITIAL;
- return CR_FALSE;
- }
- cond_states[cond_depth] = IFS_ACTIVE;
- return CR_TRUE;
+ cond_states[cond_depth] = res == CR_TRUE ? IFS_ACTIVE : IFS_INITIAL;
+ return res;
}
void