Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/usr.bin/make make(1): fix wording of parse error in conditio...



details:   https://anonhg.NetBSD.org/src/rev/d58f19e10e6e
branches:  trunk
changeset: 943850:d58f19e10e6e
user:      rillig <rillig%NetBSD.org@localhost>
date:      Sat Sep 12 10:38:52 2020 +0000

description:
make(1): fix wording of parse error in conditionals

The word "should" is not appropriate for situations that eventually lead
to a parse error.

diffstat:

 usr.bin/make/cond.c                         |  17 +++++++++++------
 usr.bin/make/unit-tests/cond-cmp-string.exp |   2 +-
 usr.bin/make/unit-tests/cond1.exp           |   2 +-
 3 files changed, 13 insertions(+), 8 deletions(-)

diffs (100 lines):

diff -r 8473090d9d0f -r d58f19e10e6e usr.bin/make/cond.c
--- a/usr.bin/make/cond.c       Sat Sep 12 10:14:16 2020 +0000
+++ b/usr.bin/make/cond.c       Sat Sep 12 10:38:52 2020 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: cond.c,v 1.134 2020/09/11 17:32:36 rillig Exp $        */
+/*     $NetBSD: cond.c,v 1.135 2020/09/12 10:38:52 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.134 2020/09/11 17:32:36 rillig Exp $";
+static char rcsid[] = "$NetBSD: cond.c,v 1.135 2020/09/12 10:38:52 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.134 2020/09/11 17:32:36 rillig Exp $");
+__RCSID("$NetBSD: cond.c,v 1.135 2020/09/12 10:38:52 rillig Exp $");
 #endif
 #endif /* not lint */
 #endif
@@ -281,6 +281,7 @@
     if (func != NULL && *cp++ != ')') {
        Parse_Error(PARSE_WARNING, "Missing closing parenthesis for %s()",
                    func);
+       /* The PARSE_FATAL is done as a follow-up by Cond_EvalExpression. */
        return 0;
     }
 
@@ -550,18 +551,20 @@
 EvalCompareNum(double lhs, const char *op, double rhs)
 {
     if (DEBUG(COND))
-       fprintf(debug_file, "lhs = %f, right = %f, op = %.2s\n", lhs, rhs, op);
+       fprintf(debug_file, "lhs = %f, rhs = %f, op = %.2s\n", lhs, rhs, op);
 
     switch (op[0]) {
     case '!':
        if (op[1] != '=') {
            Parse_Error(PARSE_WARNING, "Unknown operator");
+           /* The PARSE_FATAL is done as a follow-up by Cond_EvalExpression. */
            return TOK_ERROR;
        }
        return lhs != rhs;
     case '=':
        if (op[1] != '=') {
            Parse_Error(PARSE_WARNING, "Unknown operator");
+           /* The PARSE_FATAL is done as a follow-up by Cond_EvalExpression. */
            return TOK_ERROR;
        }
        return lhs == rhs;
@@ -576,9 +579,10 @@
 static Token
 EvalCompareStr(const char *lhs, const char *op, const char *rhs)
 {
-    if ((*op != '!' && *op != '=') || op[1] != '=') {
+    if (!((op[0] == '!' || op[0] == '=') && op[1] == '=')) {
        Parse_Error(PARSE_WARNING,
-                   "String comparison operator should be either == or !=");
+                   "String comparison operator must be either == or !=");
+       /* The PARSE_FATAL is done as a follow-up by Cond_EvalExpression. */
        return TOK_ERROR;
     }
 
@@ -658,6 +662,7 @@
 
     if (par->p[0] == '\0') {
        Parse_Error(PARSE_WARNING, "Missing right-hand-side of operator");
+       /* The PARSE_FATAL is done as a follow-up by Cond_EvalExpression. */
        goto done;
     }
 
diff -r 8473090d9d0f -r d58f19e10e6e usr.bin/make/unit-tests/cond-cmp-string.exp
--- a/usr.bin/make/unit-tests/cond-cmp-string.exp       Sat Sep 12 10:14:16 2020 +0000
+++ b/usr.bin/make/unit-tests/cond-cmp-string.exp       Sat Sep 12 10:38:52 2020 +0000
@@ -1,6 +1,6 @@
 make: "cond-cmp-string.mk" line 18: Malformed conditional (str != str)
 make: "cond-cmp-string.mk" line 37: Malformed conditional ("string" != "str""ing")
-make: "cond-cmp-string.mk" line 42: warning: String comparison operator should be either == or !=
+make: "cond-cmp-string.mk" line 42: warning: String comparison operator must be either == or !=
 make: "cond-cmp-string.mk" line 42: Malformed conditional (!("value" = "value"))
 make: "cond-cmp-string.mk" line 49: Malformed conditional (!("value" === "value"))
 make: Fatal errors encountered -- cannot continue
diff -r 8473090d9d0f -r d58f19e10e6e usr.bin/make/unit-tests/cond1.exp
--- a/usr.bin/make/unit-tests/cond1.exp Sat Sep 12 10:14:16 2020 +0000
+++ b/usr.bin/make/unit-tests/cond1.exp Sat Sep 12 10:38:52 2020 +0000
@@ -16,7 +16,7 @@
 4 is not prime
 5 is  prime
 
-make: warning: String comparison operator should be either == or !=
+make: warning: String comparison operator must be either == or !=
 make: Bad conditional expression `"0" > 0' in "0" > 0?OK:No
 
 OK



Home | Main Index | Thread Index | Old Index