Module Name: src Committed By: rillig Date: Sun Dec 10 20:12:28 UTC 2023
Modified Files: src/usr.bin/make: var.c src/usr.bin/make/unit-tests: cond-late.exp cond-late.mk varmod-ifelse.exp varmod-ifelse.mk Log Message: make: remove redundant text from diagnostic about bad '?:' modifier To generate a diff of this commit: cvs rdiff -u -r1.1080 -r1.1081 src/usr.bin/make/var.c cvs rdiff -u -r1.4 -r1.5 src/usr.bin/make/unit-tests/cond-late.exp cvs rdiff -u -r1.5 -r1.6 src/usr.bin/make/unit-tests/cond-late.mk cvs rdiff -u -r1.18 -r1.19 src/usr.bin/make/unit-tests/varmod-ifelse.exp cvs rdiff -u -r1.25 -r1.26 src/usr.bin/make/unit-tests/varmod-ifelse.mk 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/var.c diff -u src/usr.bin/make/var.c:1.1080 src/usr.bin/make/var.c:1.1081 --- src/usr.bin/make/var.c:1.1080 Sun Dec 10 20:03:30 2023 +++ src/usr.bin/make/var.c Sun Dec 10 20:12:28 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: var.c,v 1.1080 2023/12/10 20:03:30 rillig Exp $ */ +/* $NetBSD: var.c,v 1.1081 2023/12/10 20:12:28 rillig Exp $ */ /* * Copyright (c) 1988, 1989, 1990, 1993 @@ -139,7 +139,7 @@ #include "metachar.h" /* "@(#)var.c 8.3 (Berkeley) 3/19/94" */ -MAKE_RCSID("$NetBSD: var.c,v 1.1080 2023/12/10 20:03:30 rillig Exp $"); +MAKE_RCSID("$NetBSD: var.c,v 1.1081 2023/12/10 20:12:28 rillig Exp $"); /* * Variables are defined using one of the VAR=value assignments. Their @@ -3476,8 +3476,8 @@ ApplyModifier_IfElse(const char **pp, Mo if (cond_rc == CR_ERROR) { Substring thenExpr = LazyBuf_Get(&thenBuf); Substring elseExpr = LazyBuf_Get(&elseBuf); - Error("Bad conditional expression '%s' in '%s?%.*s:%.*s'", - expr->name, expr->name, + Error("Bad conditional expression '%s' before '?%.*s:%.*s'", + expr->name, (int)Substring_Length(thenExpr), thenExpr.start, (int)Substring_Length(elseExpr), elseExpr.start); LazyBuf_Done(&thenBuf); Index: src/usr.bin/make/unit-tests/cond-late.exp diff -u src/usr.bin/make/unit-tests/cond-late.exp:1.4 src/usr.bin/make/unit-tests/cond-late.exp:1.5 --- src/usr.bin/make/unit-tests/cond-late.exp:1.4 Mon Apr 19 22:22:27 2021 +++ src/usr.bin/make/unit-tests/cond-late.exp Sun Dec 10 20:12:28 2023 @@ -1,4 +1,4 @@ -make: Bad conditional expression ' != "no"' in ' != "no"?:' +make: Bad conditional expression ' != "no"' before '?:' yes no exit status 0 Index: src/usr.bin/make/unit-tests/cond-late.mk diff -u src/usr.bin/make/unit-tests/cond-late.mk:1.5 src/usr.bin/make/unit-tests/cond-late.mk:1.6 --- src/usr.bin/make/unit-tests/cond-late.mk:1.5 Sun Nov 19 21:47:52 2023 +++ src/usr.bin/make/unit-tests/cond-late.mk Sun Dec 10 20:12:28 2023 @@ -1,4 +1,4 @@ -# $NetBSD: cond-late.mk,v 1.5 2023/11/19 21:47:52 rillig Exp $ +# $NetBSD: cond-late.mk,v 1.6 2023/12/10 20:12:28 rillig Exp $ # # Using the :? modifier, expressions can contain conditional # expressions that are evaluated late, at expansion time. @@ -31,6 +31,6 @@ cond-literal: VAR= ${${UNDEF} != "no":?:} # expect-reset -# expect: make: Bad conditional expression ' != "no"' in ' != "no"?:' +# expect: make: Bad conditional expression ' != "no"' before '?:' .if empty(VAR:Mpattern) .endif Index: src/usr.bin/make/unit-tests/varmod-ifelse.exp diff -u src/usr.bin/make/unit-tests/varmod-ifelse.exp:1.18 src/usr.bin/make/unit-tests/varmod-ifelse.exp:1.19 --- src/usr.bin/make/unit-tests/varmod-ifelse.exp:1.18 Sun Nov 19 21:47:52 2023 +++ src/usr.bin/make/unit-tests/varmod-ifelse.exp Sun Dec 10 20:12:28 2023 @@ -1,14 +1,14 @@ -make: Bad conditional expression 'bare words == "literal"' in 'bare words == "literal"?bad:bad' +make: Bad conditional expression 'bare words == "literal"' before '?bad:bad' make: "varmod-ifelse.mk" line 28: Malformed conditional (${${:Ubare words} == "literal":?bad:bad}) -make: Bad conditional expression ' == ""' in ' == ""?bad-assign:bad-assign' -make: Bad conditional expression ' == ""' in ' == ""?bad-cond:bad-cond' +make: Bad conditional expression ' == ""' before '?bad-assign:bad-assign' +make: Bad conditional expression ' == ""' before '?bad-cond:bad-cond' make: "varmod-ifelse.mk" line 46: Malformed conditional (${${UNDEF} == "":?bad-cond:bad-cond}) -make: Bad conditional expression '1 == == 2' in '1 == == 2?yes:no' +make: Bad conditional expression '1 == == 2' before '?yes:no' make: "varmod-ifelse.mk" line 69: Malformed conditional (${1 == == 2:?yes:no} != "") CondParser_Eval: "${1 == == 2:?yes:no}" != "" CondParser_Eval: 1 == == 2 Comparing 1.000000 == 0.000000 -make: Bad conditional expression '1 == == 2' in '1 == == 2?yes:no' +make: Bad conditional expression '1 == == 2' before '?yes:no' Comparing "" != "" make: "varmod-ifelse.mk" line 96: warning: Oops, the parse error should have been propagated. CondParser_Eval: ${ ${:U\$}{VAR} == value:?ok:bad} != "ok" @@ -17,15 +17,15 @@ Comparing "value" == "value" Comparing "ok" != "ok" make: "varmod-ifelse.mk" line 158: no. make: "varmod-ifelse.mk" line 162: Comparison with '>=' requires both operands 'no' and '10' to be numeric -make: Bad conditional expression 'string == "literal" || no >= 10' in 'string == "literal" || no >= 10?yes:no' +make: Bad conditional expression 'string == "literal" || no >= 10' before '?yes:no' make: "varmod-ifelse.mk" line 162: . -make: Bad conditional expression 'string == "literal" && >= 10' in 'string == "literal" && >= 10?yes:no' +make: Bad conditional expression 'string == "literal" && >= 10' before '?yes:no' make: "varmod-ifelse.mk" line 169: . -make: Bad conditional expression 'string == "literal" || >= 10' in 'string == "literal" || >= 10?yes:no' +make: Bad conditional expression 'string == "literal" || >= 10' before '?yes:no' make: "varmod-ifelse.mk" line 172: . make: "varmod-ifelse.mk" line 180: <true> make: "varmod-ifelse.mk" line 183: <false> -make: Bad conditional expression ' ' in ' ?true:false' +make: Bad conditional expression ' ' before '?true:false' make: "varmod-ifelse.mk" line 186: <> CondParser_Eval: 0 && ${1:?${:Uthen0:S,}},,}:${:Uelse0:S,}},,}} != "not evaluated" CondParser_Eval: 1 && ${0:?${:Uthen1:S,}},,}:${:Uelse1:S,}},,}} != "else1" Index: src/usr.bin/make/unit-tests/varmod-ifelse.mk diff -u src/usr.bin/make/unit-tests/varmod-ifelse.mk:1.25 src/usr.bin/make/unit-tests/varmod-ifelse.mk:1.26 --- src/usr.bin/make/unit-tests/varmod-ifelse.mk:1.25 Sun Nov 19 21:47:52 2023 +++ src/usr.bin/make/unit-tests/varmod-ifelse.mk Sun Dec 10 20:12:28 2023 @@ -1,4 +1,4 @@ -# $NetBSD: varmod-ifelse.mk,v 1.25 2023/11/19 21:47:52 rillig Exp $ +# $NetBSD: varmod-ifelse.mk,v 1.26 2023/12/10 20:12:28 rillig Exp $ # # Tests for the ${cond:?then:else} variable modifier, which evaluates either # the then-expression or the else-expression, depending on the condition. @@ -157,17 +157,17 @@ NUMBER= no # not really a number # expect+1: no. .info ${${STRING} == "literal" && ${NUMBER} >= 10:?yes:no}. # expect+3: Comparison with '>=' requires both operands 'no' and '10' to be numeric -# expect: make: Bad conditional expression 'string == "literal" || no >= 10' in 'string == "literal" || no >= 10?yes:no' +# expect: make: Bad conditional expression 'string == "literal" || no >= 10' before '?yes:no' # expect+1: . .info ${${STRING} == "literal" || ${NUMBER} >= 10:?yes:no}. # The following situation occasionally occurs with MKINET6 or similar # variables. NUMBER= # empty, not really a number either -# expect: make: Bad conditional expression 'string == "literal" && >= 10' in 'string == "literal" && >= 10?yes:no' +# expect: make: Bad conditional expression 'string == "literal" && >= 10' before '?yes:no' # expect+1: . .info ${${STRING} == "literal" && ${NUMBER} >= 10:?yes:no}. -# expect: make: Bad conditional expression 'string == "literal" || >= 10' in 'string == "literal" || >= 10?yes:no' +# expect: make: Bad conditional expression 'string == "literal" || >= 10' before '?yes:no' # expect+1: . .info ${${STRING} == "literal" || ${NUMBER} >= 10:?yes:no}.