Module Name: src Committed By: rillig Date: Wed Dec 29 05:01:35 UTC 2021
Modified Files: src/usr.bin/make: cond.c make.h parse.c Log Message: make: merge duplicate enum constants for CondEvalResult and CondResult No binary change. To generate a diff of this commit: cvs rdiff -u -r1.310 -r1.311 src/usr.bin/make/cond.c cvs rdiff -u -r1.282 -r1.283 src/usr.bin/make/make.h cvs rdiff -u -r1.603 -r1.604 src/usr.bin/make/parse.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.310 src/usr.bin/make/cond.c:1.311 --- src/usr.bin/make/cond.c:1.310 Wed Dec 29 04:50:56 2021 +++ src/usr.bin/make/cond.c Wed Dec 29 05:01:35 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: cond.c,v 1.310 2021/12/29 04:50:56 rillig Exp $ */ +/* $NetBSD: cond.c,v 1.311 2021/12/29 05:01:35 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.310 2021/12/29 04:50:56 rillig Exp $"); +MAKE_RCSID("$NetBSD: cond.c,v 1.311 2021/12/29 05:01:35 rillig Exp $"); /* * The parsing of conditional expressions is based on this grammar: @@ -990,10 +990,10 @@ CondParser_Eval(CondParser *par) res = CondParser_Or(par, true); if (res == CR_ERROR) - return COND_INVALID; + return CR_ERROR; if (CondParser_Token(par, false) != TOK_EOF) - return COND_INVALID; + return CR_ERROR; return res; } @@ -1004,8 +1004,8 @@ CondParser_Eval(CondParser *par) * function(arg), comparisons and parenthetical groupings thereof. * * Results: - * COND_PARSE if the condition was valid grammatically - * COND_INVALID if not a valid conditional. + * 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 */ @@ -1029,7 +1029,7 @@ CondEvalExpression(const char *cond, boo rval = CondParser_Eval(&par); - if (rval == COND_INVALID && eprint && !par.printedError) + if (rval == CR_ERROR && eprint && !par.printedError) Parse_Error(PARSE_FATAL, "Malformed conditional (%s)", cond); return rval; @@ -1111,12 +1111,12 @@ DetermineKindOfConditional(const char ** * parenthetical groupings thereof. * * Results: - * COND_PARSE to continue parsing the lines that follow the + * CR_TRUE to continue parsing the lines that follow the * conditional (when <cond> evaluates to true) - * COND_SKIP to skip the lines after the conditional + * CR_FALSE to skip the lines after the conditional * (when <cond> evaluates to false, or when a previous * branch has already been taken) - * COND_INVALID if the conditional was not valid, either because of + * CR_ERROR if the conditional was not valid, either because of * a syntax error or because some variable was undefined * or because the condition could not be evaluated */ @@ -1170,13 +1170,13 @@ Cond_EvalLine(const char *line) if (cond_depth == cond_min_depth) { Parse_Error(PARSE_FATAL, "if-less endif"); - return COND_PARSE; + return CR_TRUE; } /* Return state for previous conditional */ cond_depth--; return cond_states[cond_depth] & IFS_ACTIVE - ? COND_PARSE : COND_SKIP; + ? CR_TRUE : CR_FALSE; } /* Parse the name of the directive, such as 'if', 'elif', 'endif'. */ @@ -1187,7 +1187,7 @@ Cond_EvalLine(const char *line) * transformation rule like '.err.txt', * therefore no error message here. */ - return COND_INVALID; + return CR_ERROR; } /* Quite likely this is 'else' or 'elif' */ @@ -1201,7 +1201,7 @@ Cond_EvalLine(const char *line) if (cond_depth == cond_min_depth) { Parse_Error(PARSE_FATAL, "if-less else"); - return COND_PARSE; + return CR_TRUE; } state = cond_states[cond_depth]; @@ -1215,7 +1215,7 @@ Cond_EvalLine(const char *line) } cond_states[cond_depth] = state; - return state & IFS_ACTIVE ? COND_PARSE : COND_SKIP; + return state & IFS_ACTIVE ? CR_TRUE : CR_FALSE; } /* Assume for now it is an elif */ isElif = true; @@ -1227,27 +1227,27 @@ Cond_EvalLine(const char *line) * Unknown directive. It might still be a transformation rule * like '.elisp.scm', therefore no error message here. */ - return COND_INVALID; /* Not an ifxxx or elifxxx line */ + return CR_ERROR; /* Not an ifxxx or elifxxx line */ } if (!DetermineKindOfConditional(&p, &plain, &evalBare, &negate)) - return COND_INVALID; + return CR_ERROR; if (isElif) { if (cond_depth == cond_min_depth) { Parse_Error(PARSE_FATAL, "if-less elif"); - return COND_PARSE; + return CR_TRUE; } state = cond_states[cond_depth]; if (state & IFS_SEEN_ELSE) { Parse_Error(PARSE_WARNING, "extra elif"); cond_states[cond_depth] = IFS_WAS_ACTIVE | IFS_SEEN_ELSE; - return COND_SKIP; + return CR_FALSE; } if (state != IFS_INITIAL) { cond_states[cond_depth] = IFS_WAS_ACTIVE; - return COND_SKIP; + return CR_FALSE; } } else { /* Normal .if */ @@ -1269,28 +1269,28 @@ Cond_EvalLine(const char *line) * treat as always false. */ cond_states[cond_depth] = IFS_WAS_ACTIVE; - return COND_SKIP; + return CR_FALSE; } } /* And evaluate the conditional expression */ res = CondEvalExpression(p, plain, evalBare, negate, true, false); - if (res == COND_INVALID) { + if (res == CR_ERROR) { /* * Syntax error in conditional, error message already output. */ /* Skip everything to matching .endif */ /* XXX: An extra '.else' is not detected in this case. */ cond_states[cond_depth] = IFS_WAS_ACTIVE; - return COND_SKIP; + return CR_FALSE; } - if (res == COND_SKIP) { + if (res == CR_FALSE) { cond_states[cond_depth] = IFS_INITIAL; - return COND_SKIP; + return CR_FALSE; } cond_states[cond_depth] = IFS_ACTIVE; - return COND_PARSE; + return CR_TRUE; } void Index: src/usr.bin/make/make.h diff -u src/usr.bin/make/make.h:1.282 src/usr.bin/make/make.h:1.283 --- src/usr.bin/make/make.h:1.282 Wed Dec 29 04:41:38 2021 +++ src/usr.bin/make/make.h Wed Dec 29 05:01:35 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: make.h,v 1.282 2021/12/29 04:41:38 rillig Exp $ */ +/* $NetBSD: make.h,v 1.283 2021/12/29 05:01:35 rillig Exp $ */ /* * Copyright (c) 1988, 1989, 1990, 1993 @@ -519,12 +519,9 @@ typedef enum ParseErrorLevel { * Values returned by Cond_EvalLine and Cond_EvalCondition. */ typedef enum CondEvalResult { - COND_PARSE, /* Parse the next lines */ - COND_SKIP, /* Skip the next lines */ - COND_INVALID, /* Not a conditional statement */ - CR_TRUE = COND_PARSE, - CR_FALSE = COND_SKIP, - CR_ERROR = COND_INVALID + CR_TRUE, /* Parse the next lines */ + CR_FALSE, /* Skip the next lines */ + CR_ERROR /* Unknown directive or parse error */ } CondEvalResult, CondResult; /* Names of the variables that are "local" to a specific target. */ Index: src/usr.bin/make/parse.c diff -u src/usr.bin/make/parse.c:1.603 src/usr.bin/make/parse.c:1.604 --- src/usr.bin/make/parse.c:1.603 Tue Dec 28 19:43:42 2021 +++ src/usr.bin/make/parse.c Wed Dec 29 05:01:35 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: parse.c,v 1.603 2021/12/28 19:43:42 rillig Exp $ */ +/* $NetBSD: parse.c,v 1.604 2021/12/29 05:01:35 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.603 2021/12/28 19:43:42 rillig Exp $"); +MAKE_RCSID("$NetBSD: parse.c,v 1.604 2021/12/29 05:01:35 rillig Exp $"); /* types and constants */ @@ -2727,7 +2727,7 @@ SkipIrrelevantBranches(void) char *line; while ((line = ReadLowLevelLine(LK_DOT)) != NULL) { - if (Cond_EvalLine(line) == COND_PARSE) + if (Cond_EvalLine(line) == CR_TRUE) break; /* * TODO: Check for typos in .elif directives @@ -2805,13 +2805,13 @@ ReadHighLevelLine(void) * about it and act accordingly */ switch (Cond_EvalLine(line)) { - case COND_SKIP: + case CR_FALSE: /* May also mean a syntax error. */ if (!SkipIrrelevantBranches()) return NULL; continue; - case COND_PARSE: + case CR_TRUE: continue; - case COND_INVALID: /* Not a conditional line */ + case CR_ERROR: /* Not a conditional line */ if (ParseForLoop(line)) continue; break;