Module Name: src Committed By: rillig Date: Sat Mar 29 19:08:53 UTC 2025
Modified Files: src/usr.bin/make: var.c src/usr.bin/make/unit-tests: cmd-errors-jobs.exp cmd-errors-jobs.mk cmd-errors-lint.exp cmd-errors-lint.mk cmd-errors.exp cmd-errors.mk cond-token-string.exp cond-token-string.mk deptgt.exp deptgt.mk directive-for-errors.exp directive-for-errors.mk directive-for.exp directive-for.mk directive-include.exp directive-include.mk directive-undef.exp directive-undef.mk moderrs.exp moderrs.mk opt-debug-lint.exp opt-debug-lint.mk var-op-expand.exp var-op-expand.mk vardebug.exp vardebug.mk varmod-assign.exp varmod-assign.mk varmod-edge.exp varmod-edge.mk varmod-hash.exp varmod-ifelse.exp varmod-ifelse.mk varmod-indirect.exp varmod-indirect.mk varmod-match.exp varmod-match.mk varmod-mtime.exp varmod-mtime.mk varmod-range.exp varmod-range.mk varmod-subst-regex.exp varmod-subst.exp varmod-subst.mk varparse-errors.exp varparse-errors.mk Log Message: make: add ":" to error message about unknown modifier In the manual page, the modifiers are listed with a preceding ":", so use the same pattern in the error message. This removes an inconsistency between the error messages "Unknown modifier" and "Bad modifier". To generate a diff of this commit: cvs rdiff -u -r1.1150 -r1.1151 src/usr.bin/make/var.c cvs rdiff -u -r1.15 -r1.16 src/usr.bin/make/unit-tests/cmd-errors-jobs.exp \ src/usr.bin/make/unit-tests/cmd-errors.exp \ src/usr.bin/make/unit-tests/cond-token-string.mk \ src/usr.bin/make/unit-tests/directive-include.exp cvs rdiff -u -r1.14 -r1.15 src/usr.bin/make/unit-tests/cmd-errors-jobs.mk \ src/usr.bin/make/unit-tests/directive-for-errors.mk \ src/usr.bin/make/unit-tests/varmod-mtime.mk cvs rdiff -u -r1.11 -r1.12 src/usr.bin/make/unit-tests/cmd-errors-lint.exp \ src/usr.bin/make/unit-tests/cmd-errors.mk cvs rdiff -u -r1.6 -r1.7 src/usr.bin/make/unit-tests/cmd-errors-lint.mk cvs rdiff -u -r1.17 -r1.18 src/usr.bin/make/unit-tests/cond-token-string.exp \ src/usr.bin/make/unit-tests/directive-include.mk \ src/usr.bin/make/unit-tests/vardebug.mk cvs rdiff -u -r1.21 -r1.22 src/usr.bin/make/unit-tests/deptgt.exp cvs rdiff -u -r1.22 -r1.23 src/usr.bin/make/unit-tests/deptgt.mk \ src/usr.bin/make/unit-tests/opt-debug-lint.mk \ src/usr.bin/make/unit-tests/var-op-expand.mk \ src/usr.bin/make/unit-tests/varmod-indirect.mk cvs rdiff -u -r1.9 -r1.10 \ src/usr.bin/make/unit-tests/directive-for-errors.exp \ src/usr.bin/make/unit-tests/varmod-hash.exp cvs rdiff -u -r1.26 -r1.27 src/usr.bin/make/unit-tests/directive-for.exp \ src/usr.bin/make/unit-tests/varmod-assign.mk \ src/usr.bin/make/unit-tests/varmod-ifelse.exp cvs rdiff -u -r1.28 -r1.29 src/usr.bin/make/unit-tests/directive-for.mk cvs rdiff -u -r1.13 -r1.14 src/usr.bin/make/unit-tests/directive-undef.exp \ src/usr.bin/make/unit-tests/varmod-subst-regex.exp cvs rdiff -u -r1.16 -r1.17 src/usr.bin/make/unit-tests/directive-undef.mk \ src/usr.bin/make/unit-tests/varmod-range.mk \ src/usr.bin/make/unit-tests/varmod-subst.mk \ src/usr.bin/make/unit-tests/varparse-errors.exp cvs rdiff -u -r1.50 -r1.51 src/usr.bin/make/unit-tests/moderrs.exp cvs rdiff -u -r1.44 -r1.45 src/usr.bin/make/unit-tests/moderrs.mk cvs rdiff -u -r1.23 -r1.24 src/usr.bin/make/unit-tests/opt-debug-lint.exp \ src/usr.bin/make/unit-tests/varmod-match.exp cvs rdiff -u -r1.12 -r1.13 src/usr.bin/make/unit-tests/var-op-expand.exp \ src/usr.bin/make/unit-tests/varmod-mtime.exp cvs rdiff -u -r1.41 -r1.42 src/usr.bin/make/unit-tests/vardebug.exp cvs rdiff -u -r1.32 -r1.33 src/usr.bin/make/unit-tests/varmod-assign.exp cvs rdiff -u -r1.31 -r1.32 src/usr.bin/make/unit-tests/varmod-edge.exp cvs rdiff -u -r1.35 -r1.36 src/usr.bin/make/unit-tests/varmod-edge.mk \ src/usr.bin/make/unit-tests/varmod-ifelse.mk cvs rdiff -u -r1.33 -r1.34 src/usr.bin/make/unit-tests/varmod-indirect.exp cvs rdiff -u -r1.29 -r1.30 src/usr.bin/make/unit-tests/varmod-match.mk cvs rdiff -u -r1.18 -r1.19 src/usr.bin/make/unit-tests/varmod-range.exp cvs rdiff -u -r1.10 -r1.11 src/usr.bin/make/unit-tests/varmod-subst.exp cvs rdiff -u -r1.19 -r1.20 src/usr.bin/make/unit-tests/varparse-errors.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.1150 src/usr.bin/make/var.c:1.1151 --- src/usr.bin/make/var.c:1.1150 Sat Mar 29 16:44:14 2025 +++ src/usr.bin/make/var.c Sat Mar 29 19:08:52 2025 @@ -1,4 +1,4 @@ -/* $NetBSD: var.c,v 1.1150 2025/03/29 16:44:14 rillig Exp $ */ +/* $NetBSD: var.c,v 1.1151 2025/03/29 19:08:52 rillig Exp $ */ /* * Copyright (c) 1988, 1989, 1990, 1993 @@ -128,7 +128,7 @@ #include "metachar.h" /* "@(#)var.c 8.3 (Berkeley) 3/19/94" */ -MAKE_RCSID("$NetBSD: var.c,v 1.1150 2025/03/29 16:44:14 rillig Exp $"); +MAKE_RCSID("$NetBSD: var.c,v 1.1151 2025/03/29 19:08:52 rillig Exp $"); /* * Variables are defined using one of the VAR=value assignments. Their @@ -4013,7 +4013,7 @@ ApplySingleModifier(const char **pp, Mod */ for (p++; !IsDelimiter(*p, ch); p++) continue; - Parse_Error(PARSE_FATAL, "Unknown modifier \"%.*s\"", + Parse_Error(PARSE_FATAL, "Unknown modifier \":%.*s\"", (int)(p - mod), mod); Expr_SetValueRefer(ch->expr, var_Error); res = AMR_CLEANUP; Index: src/usr.bin/make/unit-tests/cmd-errors-jobs.exp diff -u src/usr.bin/make/unit-tests/cmd-errors-jobs.exp:1.15 src/usr.bin/make/unit-tests/cmd-errors-jobs.exp:1.16 --- src/usr.bin/make/unit-tests/cmd-errors-jobs.exp:1.15 Sat Mar 29 10:39:48 2025 +++ src/usr.bin/make/unit-tests/cmd-errors-jobs.exp Sat Mar 29 19:08:52 2025 @@ -14,7 +14,7 @@ make: Unclosed expression, expecting '}' while evaluating variable "UNCLOSED" with value "" in command ": unexpected $@-${UNCLOSED:" in target "parse-error-unclosed-modifier" -make: Unknown modifier "Z" +make: Unknown modifier ":Z" while evaluating variable "UNKNOWN" with value "" in command ": unexpected $@-${UNKNOWN:Z}-eol" in target "parse-error-unknown-modifier" @@ -28,7 +28,7 @@ make: Unclosed expression, expecting '}' while evaluating variable "UNCLOSED" with value "" in command ": unexpected $@-${UNCLOSED:" in target "parse-error-unclosed-modifier" -make: Unknown modifier "Z" +make: Unknown modifier ":Z" while evaluating variable "UNKNOWN" with value "" in command ": unexpected $@-${UNKNOWN:Z}-eol" in target "parse-error-unknown-modifier" Index: src/usr.bin/make/unit-tests/cmd-errors.exp diff -u src/usr.bin/make/unit-tests/cmd-errors.exp:1.15 src/usr.bin/make/unit-tests/cmd-errors.exp:1.16 --- src/usr.bin/make/unit-tests/cmd-errors.exp:1.15 Sat Mar 29 10:39:48 2025 +++ src/usr.bin/make/unit-tests/cmd-errors.exp Sat Mar 29 19:08:52 2025 @@ -6,7 +6,7 @@ make: Unclosed expression, expecting '}' while evaluating variable "UNCLOSED" with value "" in command ": $@-${UNCLOSED:" in target "unclosed-modifier" -make: Unknown modifier "Z" +make: Unknown modifier ":Z" while evaluating variable "UNKNOWN" with value "" in command ": $@-${UNKNOWN:Z}-eol" in target "unknown-modifier" Index: src/usr.bin/make/unit-tests/cond-token-string.mk diff -u src/usr.bin/make/unit-tests/cond-token-string.mk:1.15 src/usr.bin/make/unit-tests/cond-token-string.mk:1.16 --- src/usr.bin/make/unit-tests/cond-token-string.mk:1.15 Sat Jan 11 20:54:45 2025 +++ src/usr.bin/make/unit-tests/cond-token-string.mk Sat Mar 29 19:08:52 2025 @@ -1,4 +1,4 @@ -# $NetBSD: cond-token-string.mk,v 1.15 2025/01/11 20:54:45 rillig Exp $ +# $NetBSD: cond-token-string.mk,v 1.16 2025/03/29 19:08:52 rillig Exp $ # # Tests for quoted string literals in .if conditions. # @@ -10,7 +10,7 @@ # Cover the code in CondParser_String that frees the memory after parsing # an expression based on an undefined variable. -# expect+1: Unknown modifier "Z" +# expect+1: Unknown modifier ":Z" .if "" != "${:Uvalue:Z}" . error .else Index: src/usr.bin/make/unit-tests/directive-include.exp diff -u src/usr.bin/make/unit-tests/directive-include.exp:1.15 src/usr.bin/make/unit-tests/directive-include.exp:1.16 --- src/usr.bin/make/unit-tests/directive-include.exp:1.15 Thu Aug 29 20:20:36 2024 +++ src/usr.bin/make/unit-tests/directive-include.exp Sat Mar 29 19:08:52 2025 @@ -4,7 +4,7 @@ CondParser_Eval: ${.MAKE.MAKEFILES:T} != Comparing "directive-include.mk null" != "directive-include.mk null" make: "directive-include.mk" line 26: Could not find nonexistent.mk make: "directive-include.mk" line 49: Could not find " -make: "directive-include.mk" line 56: Unknown modifier "Z" +make: "directive-include.mk" line 56: Unknown modifier ":Z" while evaluating "${:U123:Z}.mk" with value "123" make: "directive-include.mk" line 56: Could not find nonexistent.mk make: "directive-include.mk" line 61: Cannot open /nonexistent Index: src/usr.bin/make/unit-tests/cmd-errors-jobs.mk diff -u src/usr.bin/make/unit-tests/cmd-errors-jobs.mk:1.14 src/usr.bin/make/unit-tests/cmd-errors-jobs.mk:1.15 --- src/usr.bin/make/unit-tests/cmd-errors-jobs.mk:1.14 Sat Mar 29 10:39:48 2025 +++ src/usr.bin/make/unit-tests/cmd-errors-jobs.mk Sat Mar 29 19:08:52 2025 @@ -1,4 +1,4 @@ -# $NetBSD: cmd-errors-jobs.mk,v 1.14 2025/03/29 10:39:48 rillig Exp $ +# $NetBSD: cmd-errors-jobs.mk,v 1.15 2025/03/29 19:08:52 rillig Exp $ # # Demonstrate how errors in expressions affect whether the commands # are actually executed in jobs mode. @@ -51,11 +51,11 @@ parse-error-unknown-modifier: # expect: make: Unclosed variable "UNCLOSED" # expect: in command ": unexpected $@-${UNCLOSED" # expect: make: Unclosed expression, expecting '}' -# expect: make: Unknown modifier "Z" +# expect: make: Unknown modifier ":Z" # expect: end parse-error-direct with status 2 # expect: make: Unclosed variable "UNCLOSED" # expect: make: Unclosed expression, expecting '}' -# expect: make: Unknown modifier "Z" +# expect: make: Unknown modifier ":Z" # expect: end parse-error-indirect with status 2 Index: src/usr.bin/make/unit-tests/directive-for-errors.mk diff -u src/usr.bin/make/unit-tests/directive-for-errors.mk:1.14 src/usr.bin/make/unit-tests/directive-for-errors.mk:1.15 --- src/usr.bin/make/unit-tests/directive-for-errors.mk:1.14 Thu Aug 29 20:20:36 2024 +++ src/usr.bin/make/unit-tests/directive-for-errors.mk Sat Mar 29 19:08:52 2025 @@ -1,4 +1,4 @@ -# $NetBSD: directive-for-errors.mk,v 1.14 2024/08/29 20:20:36 rillig Exp $ +# $NetBSD: directive-for-errors.mk,v 1.15 2025/03/29 19:08:52 rillig Exp $ # # Tests for error handling in .for loops. @@ -85,7 +85,7 @@ ${:U\\}= backslash # see whether the "va # # XXX: As of 2020-12-31, Var_Subst doesn't report any errors, therefore # the loop body is expanded as if no error had happened. -# expect+1: Unknown modifier "Z" +# expect+1: Unknown modifier ":Z" .for i in 1 2 ${:U3:Z} 4 # expect+3: warning: Should not be reached. # expect+2: warning: Should not be reached. Index: src/usr.bin/make/unit-tests/varmod-mtime.mk diff -u src/usr.bin/make/unit-tests/varmod-mtime.mk:1.14 src/usr.bin/make/unit-tests/varmod-mtime.mk:1.15 --- src/usr.bin/make/unit-tests/varmod-mtime.mk:1.14 Sat Jan 11 20:54:46 2025 +++ src/usr.bin/make/unit-tests/varmod-mtime.mk Sat Mar 29 19:08:52 2025 @@ -1,4 +1,4 @@ -# $NetBSD: varmod-mtime.mk,v 1.14 2025/01/11 20:54:46 rillig Exp $ +# $NetBSD: varmod-mtime.mk,v 1.15 2025/03/29 19:08:52 rillig Exp $ # # Tests for the ':mtime' variable modifier, which maps each word of the # expression to that file's modification time. @@ -106,7 +106,7 @@ end:= ${%s:L:gmtime} # If there is a typo in the modifier name, it does not match. -# expect+1: Unknown modifier "mtim" +# expect+1: Unknown modifier ":mtim" .if ${anything:L:mtim} . error .else Index: src/usr.bin/make/unit-tests/cmd-errors-lint.exp diff -u src/usr.bin/make/unit-tests/cmd-errors-lint.exp:1.11 src/usr.bin/make/unit-tests/cmd-errors-lint.exp:1.12 --- src/usr.bin/make/unit-tests/cmd-errors-lint.exp:1.11 Sat Mar 29 10:39:48 2025 +++ src/usr.bin/make/unit-tests/cmd-errors-lint.exp Sat Mar 29 19:08:52 2025 @@ -6,7 +6,7 @@ make: Unclosed expression, expecting '}' while evaluating variable "UNCLOSED" with value "" in command ": $@ ${UNCLOSED:" in target "unclosed-modifier" -make: Unknown modifier "Z" +make: Unknown modifier ":Z" while evaluating variable "UNKNOWN" with value "" in command ": $@ ${UNKNOWN:Z}" in target "unknown-modifier" Index: src/usr.bin/make/unit-tests/cmd-errors.mk diff -u src/usr.bin/make/unit-tests/cmd-errors.mk:1.11 src/usr.bin/make/unit-tests/cmd-errors.mk:1.12 --- src/usr.bin/make/unit-tests/cmd-errors.mk:1.11 Thu Aug 29 20:20:35 2024 +++ src/usr.bin/make/unit-tests/cmd-errors.mk Sat Mar 29 19:08:52 2025 @@ -1,4 +1,4 @@ -# $NetBSD: cmd-errors.mk,v 1.11 2024/08/29 20:20:35 rillig Exp $ +# $NetBSD: cmd-errors.mk,v 1.12 2025/03/29 19:08:52 rillig Exp $ # # Demonstrate how errors in expressions affect whether the commands # are actually executed in compat mode. @@ -22,7 +22,7 @@ unclosed-modifier: : $@-${UNCLOSED: unknown-modifier: -# expect: make: Unknown modifier "Z" +# expect: make: Unknown modifier ":Z" # expect-not: : unknown-modifier--eol : $@-${UNKNOWN:Z}-eol Index: src/usr.bin/make/unit-tests/cmd-errors-lint.mk diff -u src/usr.bin/make/unit-tests/cmd-errors-lint.mk:1.6 src/usr.bin/make/unit-tests/cmd-errors-lint.mk:1.7 --- src/usr.bin/make/unit-tests/cmd-errors-lint.mk:1.6 Thu Aug 29 20:20:35 2024 +++ src/usr.bin/make/unit-tests/cmd-errors-lint.mk Sat Mar 29 19:08:52 2025 @@ -1,4 +1,4 @@ -# $NetBSD: cmd-errors-lint.mk,v 1.6 2024/08/29 20:20:35 rillig Exp $ +# $NetBSD: cmd-errors-lint.mk,v 1.7 2025/03/29 19:08:52 rillig Exp $ # # Demonstrate how errors in expressions affect whether the commands # are actually executed. @@ -24,7 +24,7 @@ unclosed-modifier: : $@ ${UNCLOSED: unknown-modifier: -# expect: make: Unknown modifier "Z" +# expect: make: Unknown modifier ":Z" # expect-not: : unknown-modifier : $@ ${UNKNOWN:Z} Index: src/usr.bin/make/unit-tests/cond-token-string.exp diff -u src/usr.bin/make/unit-tests/cond-token-string.exp:1.17 src/usr.bin/make/unit-tests/cond-token-string.exp:1.18 --- src/usr.bin/make/unit-tests/cond-token-string.exp:1.17 Sat Jan 11 20:54:45 2025 +++ src/usr.bin/make/unit-tests/cond-token-string.exp Sat Mar 29 19:08:52 2025 @@ -1,4 +1,4 @@ -make: "cond-token-string.mk" line 14: Unknown modifier "Z" +make: "cond-token-string.mk" line 14: Unknown modifier ":Z" while evaluating "${:Uvalue:Z}"" with value "value" make: "cond-token-string.mk" line 24: xvalue is not defined. make: "cond-token-string.mk" line 31: Malformed conditional 'x${:Uvalue} == ""' Index: src/usr.bin/make/unit-tests/directive-include.mk diff -u src/usr.bin/make/unit-tests/directive-include.mk:1.17 src/usr.bin/make/unit-tests/directive-include.mk:1.18 --- src/usr.bin/make/unit-tests/directive-include.mk:1.17 Sat Jan 11 20:16:40 2025 +++ src/usr.bin/make/unit-tests/directive-include.mk Sat Mar 29 19:08:52 2025 @@ -1,4 +1,4 @@ -# $NetBSD: directive-include.mk,v 1.17 2025/01/11 20:16:40 rillig Exp $ +# $NetBSD: directive-include.mk,v 1.18 2025/03/29 19:08:52 rillig Exp $ # # Tests for the .include directive, which includes another file. @@ -51,7 +51,7 @@ DQUOT= " # When the expression in a filename cannot be evaluated, the failing # expression is skipped and the file is included nevertheless. # FIXME: Add proper error handling, no file must be included here. -# expect+2: Unknown modifier "Z" +# expect+2: Unknown modifier ":Z" # expect+1: Could not find nonexistent.mk .include "nonexistent${:U123:Z}.mk" Index: src/usr.bin/make/unit-tests/vardebug.mk diff -u src/usr.bin/make/unit-tests/vardebug.mk:1.17 src/usr.bin/make/unit-tests/vardebug.mk:1.18 --- src/usr.bin/make/unit-tests/vardebug.mk:1.17 Sat Mar 29 16:44:14 2025 +++ src/usr.bin/make/unit-tests/vardebug.mk Sat Mar 29 19:08:52 2025 @@ -1,4 +1,4 @@ -# $NetBSD: vardebug.mk,v 1.17 2025/03/29 16:44:14 rillig Exp $ +# $NetBSD: vardebug.mk,v 1.18 2025/03/29 19:08:52 rillig Exp $ # # Demonstrates the debugging output for var.c. @@ -55,7 +55,7 @@ VAR+= 3 # expect: Global: delete VAR .undef ${:UVAR} # Var_Delete -# expect+1: Unknown modifier "unknown" +# expect+1: Unknown modifier ":unknown" .if ${:Uvariable:unknown} .endif Index: src/usr.bin/make/unit-tests/deptgt.exp diff -u src/usr.bin/make/unit-tests/deptgt.exp:1.21 src/usr.bin/make/unit-tests/deptgt.exp:1.22 --- src/usr.bin/make/unit-tests/deptgt.exp:1.21 Tue Jan 14 21:23:17 2025 +++ src/usr.bin/make/unit-tests/deptgt.exp Sat Mar 29 19:08:52 2025 @@ -14,9 +14,9 @@ Global: .ALLTARGETS = target1 target2 s Global: .ALLTARGETS = target1 target2 sources empty-source deptgt- depsrc- Global: .MAKEFLAGS = -r -k -d p -d 0 -d v -d Global: .MAKEFLAGS = -r -k -d p -d 0 -d v -d 0 -make: "deptgt.mk" line 51: Unknown modifier "Z" +make: "deptgt.mk" line 51: Unknown modifier ":Z" while evaluating "${:U:Z}:" with value "" -make: "deptgt.mk" line 55: Unknown modifier "Z" +make: "deptgt.mk" line 55: Unknown modifier ":Z" while parsing "${:U:Z}:" make: "deptgt.mk" line 58: warning: Extra target 'ordinary' ignored make: "deptgt.mk" line 61: warning: Extra target (ordinary) ignored Index: src/usr.bin/make/unit-tests/deptgt.mk diff -u src/usr.bin/make/unit-tests/deptgt.mk:1.22 src/usr.bin/make/unit-tests/deptgt.mk:1.23 --- src/usr.bin/make/unit-tests/deptgt.mk:1.22 Fri Jan 10 23:00:38 2025 +++ src/usr.bin/make/unit-tests/deptgt.mk Sat Mar 29 19:08:52 2025 @@ -1,4 +1,4 @@ -# $NetBSD: deptgt.mk,v 1.22 2025/01/10 23:00:38 rillig Exp $ +# $NetBSD: deptgt.mk,v 1.23 2025/03/29 19:08:52 rillig Exp $ # # Tests for special targets like .BEGIN or .SUFFIXES in dependency # declarations. @@ -47,11 +47,11 @@ deptgt-${UNDEF}: depsrc-${UNDEF} # In a dependency declaration, the whole line is expanded before interpreting # the line. -# expect+1: Unknown modifier "Z" +# expect+1: Unknown modifier ":Z" ${:U:Z}: # After expanding the line as a whole, each target is parsed but not # evaluated, separately, in ParseDependencyTargetWord. -# expect+1: Unknown modifier "Z" +# expect+1: Unknown modifier ":Z" $${:U:Z}: # expect+1: warning: Extra target 'ordinary' ignored Index: src/usr.bin/make/unit-tests/opt-debug-lint.mk diff -u src/usr.bin/make/unit-tests/opt-debug-lint.mk:1.22 src/usr.bin/make/unit-tests/opt-debug-lint.mk:1.23 --- src/usr.bin/make/unit-tests/opt-debug-lint.mk:1.22 Sat Jan 11 20:54:45 2025 +++ src/usr.bin/make/unit-tests/opt-debug-lint.mk Sat Mar 29 19:08:52 2025 @@ -1,4 +1,4 @@ -# $NetBSD: opt-debug-lint.mk,v 1.22 2025/01/11 20:54:45 rillig Exp $ +# $NetBSD: opt-debug-lint.mk,v 1.23 2025/03/29 19:08:52 rillig Exp $ # # Tests for the -dL command line option, which runs additional checks # to catch common mistakes, such as unclosed expressions. @@ -70,7 +70,7 @@ ${UNDEF}: ${UNDEF} # variable modifier had to be separated by colons. This was wrong though # since make always fell back trying to parse the indirect modifier as a # SysV modifier. -# expect+1: Unknown modifier "${" +# expect+1: Unknown modifier ":${" .if ${value:${:UL}PL} != "LPL}" # FIXME: "LPL}" is unexpected here. . error ${value:${:UL}PL} .endif Index: src/usr.bin/make/unit-tests/var-op-expand.mk diff -u src/usr.bin/make/unit-tests/var-op-expand.mk:1.22 src/usr.bin/make/unit-tests/var-op-expand.mk:1.23 --- src/usr.bin/make/unit-tests/var-op-expand.mk:1.22 Thu Aug 29 20:20:36 2024 +++ src/usr.bin/make/unit-tests/var-op-expand.mk Sat Mar 29 19:08:52 2025 @@ -1,4 +1,4 @@ -# $NetBSD: var-op-expand.mk,v 1.22 2024/08/29 20:20:36 rillig Exp $ +# $NetBSD: var-op-expand.mk,v 1.23 2025/03/29 19:08:52 rillig Exp $ # # Tests for the := variable assignment operator, which expands its # right-hand side. @@ -270,7 +270,7 @@ later= lowercase-value .undef later INDIRECT:= ${LATER:S,value,replaced,} OK ${LATER:value=sysv} indirect:= ${INDIRECT:tl} -# expect+1: Unknown modifier "s,value,replaced," +# expect+1: Unknown modifier ":s,value,replaced," .if ${indirect} != " ok " . error .else @@ -279,7 +279,7 @@ indirect:= ${INDIRECT:tl} .endif LATER= uppercase-value later= lowercase-value -# expect+1: Unknown modifier "s,value,replaced," +# expect+1: Unknown modifier ":s,value,replaced," .if ${indirect} != "uppercase-replaced ok uppercase-sysv" # expect+1: warning: XXX Neither branch should be taken. . warning XXX Neither branch should be taken. Index: src/usr.bin/make/unit-tests/varmod-indirect.mk diff -u src/usr.bin/make/unit-tests/varmod-indirect.mk:1.22 src/usr.bin/make/unit-tests/varmod-indirect.mk:1.23 --- src/usr.bin/make/unit-tests/varmod-indirect.mk:1.22 Sat Mar 29 16:44:14 2025 +++ src/usr.bin/make/unit-tests/varmod-indirect.mk Sat Mar 29 19:08:52 2025 @@ -1,4 +1,4 @@ -# $NetBSD: varmod-indirect.mk,v 1.22 2025/03/29 16:44:14 rillig Exp $ +# $NetBSD: varmod-indirect.mk,v 1.23 2025/03/29 19:08:52 rillig Exp $ # # Tests for indirect variable modifiers, such as in ${VAR:${M_modifiers}}. # These can be used for very basic purposes like converting a string to either @@ -15,7 +15,7 @@ # The following expression generates a parse error since its indirect # modifier contains more than a sole expression. # -# expect+1: Unknown modifier "${" +# expect+1: Unknown modifier ":${" .if ${value:L:${:US}${:U,value,replacement,}} != "S,value,replacement,}" . warning unexpected .endif @@ -47,7 +47,7 @@ # error. Due to this parse error, this construct cannot be used reasonably # in practice. # -# expect+2: Unknown modifier "${" +# expect+2: Unknown modifier ":${" #.MAKEFLAGS: -dvc .if ${value:L:${:UM*}S,value,replaced,} == "anything" . error @@ -157,7 +157,7 @@ M_NoPrimes= ${PRIMES:${M_ListToSkip}} .endfor # An error in an indirect modifier. -# expect+1: Unknown modifier "Z" +# expect+1: Unknown modifier ":Z" .for var in before ${UNDEF:${:UZ}} after # expect+2: before # expect+1: after @@ -188,7 +188,7 @@ _:= before ${UNDEF:${:U}} after # XXX: This expands to ${UNDEF:Z}, which will behave differently if the # variable '_' is used in a context where the expression ${_} is # parsed but not evaluated. -# expect+1: Unknown modifier "Z" +# expect+1: Unknown modifier ":Z" _:= before ${UNDEF:${:UZ}} after .MAKEFLAGS: -d0 Index: src/usr.bin/make/unit-tests/directive-for-errors.exp diff -u src/usr.bin/make/unit-tests/directive-for-errors.exp:1.9 src/usr.bin/make/unit-tests/directive-for-errors.exp:1.10 --- src/usr.bin/make/unit-tests/directive-for-errors.exp:1.9 Thu Aug 29 20:20:36 2024 +++ src/usr.bin/make/unit-tests/directive-for-errors.exp Sat Mar 29 19:08:52 2025 @@ -8,7 +8,7 @@ make: "directive-for-errors.mk" line 44: make: "directive-for-errors.mk" line 52: no iteration variables in for make: "directive-for-errors.mk" line 64: Wrong number of words (5) in .for substitution list with 3 variables make: "directive-for-errors.mk" line 78: missing `in' in for -make: "directive-for-errors.mk" line 89: Unknown modifier "Z" +make: "directive-for-errors.mk" line 89: Unknown modifier ":Z" while evaluating "${:U3:Z} 4" with value "3" make: "directive-for-errors.mk" line 93: warning: Should not be reached. make: "directive-for-errors.mk" line 93: warning: Should not be reached. Index: src/usr.bin/make/unit-tests/varmod-hash.exp diff -u src/usr.bin/make/unit-tests/varmod-hash.exp:1.9 src/usr.bin/make/unit-tests/varmod-hash.exp:1.10 --- src/usr.bin/make/unit-tests/varmod-hash.exp:1.9 Sat Mar 29 10:39:49 2025 +++ src/usr.bin/make/unit-tests/varmod-hash.exp Sat Mar 29 19:08:52 2025 @@ -1,14 +1,14 @@ -make: Unknown modifier "has" +make: Unknown modifier ":has" while evaluating variable "12345" with value "12345" in command "@echo ${12345:L:has} # modifier name too short" in target "step-1" 26bb0f5f 12345 -make: Unknown modifier "hasX" +make: Unknown modifier ":hasX" while evaluating variable "12345" with value "12345" in command "@echo ${12345:L:hasX} # misspelled" in target "step-4" -make: Unknown modifier "hashed" +make: Unknown modifier ":hashed" while evaluating variable "12345" with value "12345" in command "@echo ${12345:L:hashed} # modifier name too long" in target "step-5" Index: src/usr.bin/make/unit-tests/directive-for.exp diff -u src/usr.bin/make/unit-tests/directive-for.exp:1.26 src/usr.bin/make/unit-tests/directive-for.exp:1.27 --- src/usr.bin/make/unit-tests/directive-for.exp:1.26 Thu Aug 29 20:20:36 2024 +++ src/usr.bin/make/unit-tests/directive-for.exp Sat Mar 29 19:08:52 2025 @@ -17,7 +17,7 @@ make: "directive-for.mk" line 158: }{ }{ make: "directive-for.mk" line 166: invalid character ':' in .for loop variable name make: "directive-for.mk" line 173: invalid character '$' in .for loop variable name make: "directive-for.mk" line 185: invalid character '$' in .for loop variable name -make: "directive-for.mk" line 210: Unknown modifier "Z" +make: "directive-for.mk" line 210: Unknown modifier ":Z" while evaluating "${:Uword2:Z}-after word3" with value "word2" make: "directive-for.mk" line 214: XXX: Should not reach word1 make: "directive-for.mk" line 214: XXX: Should not reach before--after Index: src/usr.bin/make/unit-tests/varmod-assign.mk diff -u src/usr.bin/make/unit-tests/varmod-assign.mk:1.26 src/usr.bin/make/unit-tests/varmod-assign.mk:1.27 --- src/usr.bin/make/unit-tests/varmod-assign.mk:1.26 Sat Mar 29 11:51:54 2025 +++ src/usr.bin/make/unit-tests/varmod-assign.mk Sat Mar 29 19:08:52 2025 @@ -1,4 +1,4 @@ -# $NetBSD: varmod-assign.mk,v 1.26 2025/03/29 11:51:54 rillig Exp $ +# $NetBSD: varmod-assign.mk,v 1.27 2025/03/29 19:08:52 rillig Exp $ # # Tests for the obscure ::= variable modifiers, which perform variable # assignments during evaluation, just like the = operator in C. @@ -93,7 +93,7 @@ mod-assign-empty-3: mod-assign-parse-1: # The modifier for assignment operators starts with a ':'. # An 'x' after that is an invalid modifier. -# expect: make: Unknown modifier ":x" +# expect: make: Unknown modifier "::x" @echo ${ASSIGN::x} mod-assign-parse-2: Index: src/usr.bin/make/unit-tests/varmod-ifelse.exp diff -u src/usr.bin/make/unit-tests/varmod-ifelse.exp:1.26 src/usr.bin/make/unit-tests/varmod-ifelse.exp:1.27 --- src/usr.bin/make/unit-tests/varmod-ifelse.exp:1.26 Sat Jan 11 20:54:45 2025 +++ src/usr.bin/make/unit-tests/varmod-ifelse.exp Sat Mar 29 19:08:52 2025 @@ -51,10 +51,10 @@ make: "varmod-ifelse.mk" line 289: no CondParser_Eval: ${DELAYED} == "two" Comparing "two" == "two" make: "varmod-ifelse.mk" line 292: yes -make: "varmod-ifelse.mk" line 314: Unknown modifier "X-then" +make: "varmod-ifelse.mk" line 314: Unknown modifier ":X-then" while evaluating "${:X-then}:${:X-else}}" with value "" while evaluating then-branch of condition "1" -make: "varmod-ifelse.mk" line 314: Unknown modifier "X-else" +make: "varmod-ifelse.mk" line 314: Unknown modifier ":X-else" while parsing "${:X-else}}" while evaluating else-branch of condition "1" make: Fatal errors encountered -- cannot continue Index: src/usr.bin/make/unit-tests/directive-for.mk diff -u src/usr.bin/make/unit-tests/directive-for.mk:1.28 src/usr.bin/make/unit-tests/directive-for.mk:1.29 --- src/usr.bin/make/unit-tests/directive-for.mk:1.28 Thu Aug 29 20:20:36 2024 +++ src/usr.bin/make/unit-tests/directive-for.mk Sat Mar 29 19:08:52 2025 @@ -1,4 +1,4 @@ -# $NetBSD: directive-for.mk,v 1.28 2024/08/29 20:20:36 rillig Exp $ +# $NetBSD: directive-for.mk,v 1.29 2025/03/29 19:08:52 rillig Exp $ # # Tests for the .for directive. # @@ -206,7 +206,7 @@ INDIRECT= ${DIRECT} # XXX: A parse error or evaluation error in the items of the .for loop # should skip the whole loop. As of 2023-05-09, the loop is expanded as # usual. -# expect+1: Unknown modifier "Z" +# expect+1: Unknown modifier ":Z" .for var in word1 before-${:Uword2:Z}-after word3 # expect+3: XXX: Should not reach word1 # expect+2: XXX: Should not reach before--after Index: src/usr.bin/make/unit-tests/directive-undef.exp diff -u src/usr.bin/make/unit-tests/directive-undef.exp:1.13 src/usr.bin/make/unit-tests/directive-undef.exp:1.14 --- src/usr.bin/make/unit-tests/directive-undef.exp:1.13 Thu Aug 29 20:20:36 2024 +++ src/usr.bin/make/unit-tests/directive-undef.exp Sat Mar 29 19:08:52 2025 @@ -1,5 +1,5 @@ make: "directive-undef.mk" line 30: The .undef directive requires an argument -make: "directive-undef.mk" line 88: Unknown modifier "Z" +make: "directive-undef.mk" line 88: Unknown modifier ":Z" while evaluating variable "VARNAMES" with value "VARNAMES" make: "directive-undef.mk" line 105: warning: UT_EXPORTED is still listed in .MAKE.EXPORTED even though spaceit is not exported anymore. make: Fatal errors encountered -- cannot continue Index: src/usr.bin/make/unit-tests/varmod-subst-regex.exp diff -u src/usr.bin/make/unit-tests/varmod-subst-regex.exp:1.13 src/usr.bin/make/unit-tests/varmod-subst-regex.exp:1.14 --- src/usr.bin/make/unit-tests/varmod-subst-regex.exp:1.13 Sat Mar 29 10:39:49 2025 +++ src/usr.bin/make/unit-tests/varmod-subst-regex.exp Sat Mar 29 19:08:53 2025 @@ -57,7 +57,7 @@ make: Regex compilation error: (details while evaluating variable "UNDEF" with value "value" in command "@echo $@: ${UNDEF:Uvalue:C,[,,}" in target "mod-regex-errors-1" -make: Unknown modifier "Z" +make: Unknown modifier ":Z" while evaluating "${:U:Z}y,W}" with value "" while evaluating variable "word" with value "word" in command "@echo $@: ${word:L:C,.*,x${:U:Z}y,W}" Index: src/usr.bin/make/unit-tests/directive-undef.mk diff -u src/usr.bin/make/unit-tests/directive-undef.mk:1.16 src/usr.bin/make/unit-tests/directive-undef.mk:1.17 --- src/usr.bin/make/unit-tests/directive-undef.mk:1.16 Thu Aug 29 20:20:36 2024 +++ src/usr.bin/make/unit-tests/directive-undef.mk Sat Mar 29 19:08:52 2025 @@ -1,4 +1,4 @@ -# $NetBSD: directive-undef.mk,v 1.16 2024/08/29 20:20:36 rillig Exp $ +# $NetBSD: directive-undef.mk,v 1.17 2025/03/29 19:08:52 rillig Exp $ # # Tests for the .undef directive. # @@ -84,7 +84,7 @@ ${DOLLAR}= dollar # # As of var.c 1.762, this doesn't happen though because the error handling # in Var_Parse and Var_Subst is not done properly. -# expect+1: Unknown modifier "Z" +# expect+1: Unknown modifier ":Z" .undef ${VARNAMES:L:Z} Index: src/usr.bin/make/unit-tests/varmod-range.mk diff -u src/usr.bin/make/unit-tests/varmod-range.mk:1.16 src/usr.bin/make/unit-tests/varmod-range.mk:1.17 --- src/usr.bin/make/unit-tests/varmod-range.mk:1.16 Sat Jan 11 20:54:46 2025 +++ src/usr.bin/make/unit-tests/varmod-range.mk Sat Mar 29 19:08:52 2025 @@ -1,4 +1,4 @@ -# $NetBSD: varmod-range.mk,v 1.16 2025/01/11 20:54:46 rillig Exp $ +# $NetBSD: varmod-range.mk,v 1.17 2025/03/29 19:08:52 rillig Exp $ # # Tests for the :range variable modifier, which generates sequences # of integers from the given range. @@ -72,7 +72,7 @@ # The upper limit of the range must always be given in decimal. # This parse error stops at the 'x', trying to parse it as a variable # modifier. -# expect+1: Unknown modifier "x0" +# expect+1: Unknown modifier ":x0" .if "${:U:range=0x0}Rest" != "Rest" . error .else @@ -89,7 +89,7 @@ #.endif # modifier name too short -# expect+1: Unknown modifier "rang" +# expect+1: Unknown modifier ":rang" .if "${a b c:L:rang}Rest" != "Rest" . error .else @@ -97,7 +97,7 @@ .endif # misspelled modifier name -# expect+1: Unknown modifier "rango" +# expect+1: Unknown modifier ":rango" .if "${a b c:L:rango}Rest" != "Rest" . error .else @@ -105,7 +105,7 @@ .endif # modifier name too long -# expect+1: Unknown modifier "ranger" +# expect+1: Unknown modifier ":ranger" .if "${a b c:L:ranger}Rest" != "Rest" . error .else Index: src/usr.bin/make/unit-tests/varmod-subst.mk diff -u src/usr.bin/make/unit-tests/varmod-subst.mk:1.16 src/usr.bin/make/unit-tests/varmod-subst.mk:1.17 --- src/usr.bin/make/unit-tests/varmod-subst.mk:1.16 Thu Aug 29 20:20:37 2024 +++ src/usr.bin/make/unit-tests/varmod-subst.mk Sat Mar 29 19:08:53 2025 @@ -1,4 +1,4 @@ -# $NetBSD: varmod-subst.mk,v 1.16 2024/08/29 20:20:37 rillig Exp $ +# $NetBSD: varmod-subst.mk,v 1.17 2025/03/29 19:08:53 rillig Exp $ # # Tests for the :S,from,to, variable modifier. @@ -252,7 +252,7 @@ mod-subst-chain: # The error message is "make: Unknown modifier 'i'", which is # kind of correct, although it is mixing the terms for variable # modifiers with the matching modifiers. -# expect: make: Unknown modifier "i" +# expect: make: Unknown modifier ":i" @echo ${:Uvalue:S,a,x,i}. # No matter how many dollar signs there are, they all get merged Index: src/usr.bin/make/unit-tests/varparse-errors.exp diff -u src/usr.bin/make/unit-tests/varparse-errors.exp:1.16 src/usr.bin/make/unit-tests/varparse-errors.exp:1.17 --- src/usr.bin/make/unit-tests/varparse-errors.exp:1.16 Thu Aug 29 20:20:37 2024 +++ src/usr.bin/make/unit-tests/varparse-errors.exp Sat Mar 29 19:08:53 2025 @@ -1,6 +1,6 @@ -make: "varparse-errors.mk" line 38: Unknown modifier "Z" +make: "varparse-errors.mk" line 38: Unknown modifier ":Z" while evaluating "${:U:Z}" with value "" -make: "varparse-errors.mk" line 47: Unknown modifier "Z" +make: "varparse-errors.mk" line 47: Unknown modifier ":Z" while evaluating "${:U:Z}post" with value "" make: "varparse-errors.mk" line 73: Bad modifier ":OX" while evaluating "${:U:OX:U${IND}} ${:U:OX:U${IND}}" with value "" Index: src/usr.bin/make/unit-tests/moderrs.exp diff -u src/usr.bin/make/unit-tests/moderrs.exp:1.50 src/usr.bin/make/unit-tests/moderrs.exp:1.51 --- src/usr.bin/make/unit-tests/moderrs.exp:1.50 Sat Mar 29 16:44:14 2025 +++ src/usr.bin/make/unit-tests/moderrs.exp Sat Mar 29 19:08:52 2025 @@ -1,8 +1,8 @@ -make: Unknown modifier "Z" +make: Unknown modifier ":Z" while evaluating variable "VAR" with value "TheVariable" in command "@echo 'VAR:Z=before-${VAR:Z}-after'" in target "mod-unknown-direct" -make: Unknown modifier "Z" +make: Unknown modifier ":Z" while evaluating indirect modifiers "Z" while evaluating variable "VAR" with value "TheVariable" in command "@echo 'VAR:${MOD_UNKN}=before-${VAR:${MOD_UNKN}:inner}-after'" @@ -153,11 +153,11 @@ make: Unfinished modifier after "else", in target "mod-ifelse-parse-4" then 1 1 2 3 5 8 13 21 34 -make: Unknown modifier "__" +make: Unknown modifier ":__" while evaluating variable "FIB" with value "1 1 2 3 5 8 13 21 34" in command "@echo ${FIB:__} # modifier name too long" in target "mod-remember-parse" -make: Unknown modifier "3" +make: Unknown modifier ":3" while evaluating variable "FIB" with value "1 1 2 3 5 8 13 21 34" in command "@echo ${FIB:3" in target "mod-sysv-parse-1" Index: src/usr.bin/make/unit-tests/moderrs.mk diff -u src/usr.bin/make/unit-tests/moderrs.mk:1.44 src/usr.bin/make/unit-tests/moderrs.mk:1.45 --- src/usr.bin/make/unit-tests/moderrs.mk:1.44 Sat Mar 29 16:44:14 2025 +++ src/usr.bin/make/unit-tests/moderrs.mk Sat Mar 29 19:08:52 2025 @@ -1,4 +1,4 @@ -# $NetBSD: moderrs.mk,v 1.44 2025/03/29 16:44:14 rillig Exp $ +# $NetBSD: moderrs.mk,v 1.45 2025/03/29 19:08:52 rillig Exp $ # # various modifier error tests @@ -25,11 +25,11 @@ all: mod-remember-parse all: mod-sysv-parse-{1,2,3,4} mod-unknown-direct: -# expect: make: Unknown modifier "Z" +# expect: make: Unknown modifier ":Z" @echo 'VAR:Z=before-${VAR:Z}-after' mod-unknown-indirect: -# expect: make: Unknown modifier "Z" +# expect: make: Unknown modifier ":Z" @echo 'VAR:${MOD_UNKN}=before-${VAR:${MOD_UNKN}:inner}-after' unclosed-direct: @@ -192,11 +192,11 @@ mod-ifelse-parse-5: mod-remember-parse: @echo ${FIB:_} # ok -# expect: make: Unknown modifier "__" +# expect: make: Unknown modifier ":__" @echo ${FIB:__} # modifier name too long mod-sysv-parse-1: -# expect: make: Unknown modifier "3" +# expect: make: Unknown modifier ":3" @echo ${FIB:3 mod-sysv-parse-2: # expect: make: Unfinished modifier after "", expecting "}" Index: src/usr.bin/make/unit-tests/opt-debug-lint.exp diff -u src/usr.bin/make/unit-tests/opt-debug-lint.exp:1.23 src/usr.bin/make/unit-tests/opt-debug-lint.exp:1.24 --- src/usr.bin/make/unit-tests/opt-debug-lint.exp:1.23 Sat Jan 11 20:54:45 2025 +++ src/usr.bin/make/unit-tests/opt-debug-lint.exp Sat Mar 29 19:08:52 2025 @@ -4,7 +4,7 @@ make: "opt-debug-lint.mk" line 65: Missi while evaluating variable "value" with value "value" make: "opt-debug-lint.mk" line 65: Missing delimiter ':' after modifier "P" while evaluating variable "value" with value "value" -make: "opt-debug-lint.mk" line 74: Unknown modifier "${" +make: "opt-debug-lint.mk" line 74: Unknown modifier ":${" while evaluating variable "value" with value "" make: Fatal errors encountered -- cannot continue make: stopped in unit-tests Index: src/usr.bin/make/unit-tests/varmod-match.exp diff -u src/usr.bin/make/unit-tests/varmod-match.exp:1.23 src/usr.bin/make/unit-tests/varmod-match.exp:1.24 --- src/usr.bin/make/unit-tests/varmod-match.exp:1.23 Sat Jan 11 20:54:46 2025 +++ src/usr.bin/make/unit-tests/varmod-match.exp Sat Mar 29 19:08:52 2025 @@ -16,7 +16,7 @@ make: "varmod-match.mk" line 356: Unfini while evaluating variable "WORDS" with value "[x- x x- y yyyyy" make: "varmod-match.mk" line 363: Unfinished character list in pattern '[' of modifier ':M' while evaluating variable " : :: " with value " : :: " -make: "varmod-match.mk" line 363: Unknown modifier "]" +make: "varmod-match.mk" line 363: Unknown modifier ":]" while evaluating variable " : :: " with value "" make: Fatal errors encountered -- cannot continue make: stopped in unit-tests Index: src/usr.bin/make/unit-tests/var-op-expand.exp diff -u src/usr.bin/make/unit-tests/var-op-expand.exp:1.12 src/usr.bin/make/unit-tests/var-op-expand.exp:1.13 --- src/usr.bin/make/unit-tests/var-op-expand.exp:1.12 Thu Aug 29 20:20:36 2024 +++ src/usr.bin/make/unit-tests/var-op-expand.exp Sat Mar 29 19:08:52 2025 @@ -1,8 +1,8 @@ -make: "var-op-expand.mk" line 274: Unknown modifier "s,value,replaced," +make: "var-op-expand.mk" line 274: Unknown modifier ":s,value,replaced," while evaluating variable "later" with value "" while evaluating variable "indirect" with value "${later:s,value,replaced,} ok ${later:value=sysv}" make: "var-op-expand.mk" line 278: warning: XXX Neither branch should be taken. -make: "var-op-expand.mk" line 283: Unknown modifier "s,value,replaced," +make: "var-op-expand.mk" line 283: Unknown modifier ":s,value,replaced," while evaluating variable "later" with value "lowercase-value" while evaluating variable "indirect" with value "${later:s,value,replaced,} ok ${later:value=sysv}" make: "var-op-expand.mk" line 285: warning: XXX Neither branch should be taken. Index: src/usr.bin/make/unit-tests/varmod-mtime.exp diff -u src/usr.bin/make/unit-tests/varmod-mtime.exp:1.12 src/usr.bin/make/unit-tests/varmod-mtime.exp:1.13 --- src/usr.bin/make/unit-tests/varmod-mtime.exp:1.12 Sat Jan 11 20:54:46 2025 +++ src/usr.bin/make/unit-tests/varmod-mtime.exp Sat Mar 29 19:08:52 2025 @@ -8,7 +8,7 @@ make: "varmod-mtime.mk" line 78: Invalid while evaluating variable "MAKEFILE" with value "varmod-mtime.mk" make: "varmod-mtime.mk" line 86: Invalid argument 'warn' for modifier ':mtime' while evaluating variable "MAKEFILE" with value "varmod-mtime.mk" -make: "varmod-mtime.mk" line 110: Unknown modifier "mtim" +make: "varmod-mtime.mk" line 110: Unknown modifier ":mtim" while evaluating variable "anything" with value "anything" make: Fatal errors encountered -- cannot continue make: stopped in unit-tests Index: src/usr.bin/make/unit-tests/vardebug.exp diff -u src/usr.bin/make/unit-tests/vardebug.exp:1.41 src/usr.bin/make/unit-tests/vardebug.exp:1.42 --- src/usr.bin/make/unit-tests/vardebug.exp:1.41 Sat Mar 29 16:44:14 2025 +++ src/usr.bin/make/unit-tests/vardebug.exp Sat Mar 29 19:08:52 2025 @@ -54,7 +54,7 @@ Var_Parse: ${:Uvariable:unknown} (eval-d Evaluating modifier ${:U...} on value "" (eval, undefined) Result of ${:Uvariable} is "variable" (eval, defined) Evaluating modifier ${:u...} on value "variable" (eval, defined) -make: "vardebug.mk" line 59: Unknown modifier "unknown" +make: "vardebug.mk" line 59: Unknown modifier ":unknown" while evaluating "${:Uvariable:unknown}" with value "variable" Var_Parse: ${UNDEFINED} (eval-defined-loud) make: "vardebug.mk" line 63: Variable "UNDEFINED" is undefined Index: src/usr.bin/make/unit-tests/varmod-assign.exp diff -u src/usr.bin/make/unit-tests/varmod-assign.exp:1.32 src/usr.bin/make/unit-tests/varmod-assign.exp:1.33 --- src/usr.bin/make/unit-tests/varmod-assign.exp:1.32 Sat Mar 29 11:51:54 2025 +++ src/usr.bin/make/unit-tests/varmod-assign.exp Sat Mar 29 19:08:52 2025 @@ -46,7 +46,7 @@ make: Bad modifier ":" in command "@echo $@: ${:Uvalue::=overwritten}" in target "mod-assign-empty-2" mod-assign-empty-3: VAR=overwritten -make: Unknown modifier ":x" +make: Unknown modifier "::x" while evaluating variable "ASSIGN" with value "" in command "@echo ${ASSIGN::x}" in target "mod-assign-parse-1" Index: src/usr.bin/make/unit-tests/varmod-edge.exp diff -u src/usr.bin/make/unit-tests/varmod-edge.exp:1.31 src/usr.bin/make/unit-tests/varmod-edge.exp:1.32 --- src/usr.bin/make/unit-tests/varmod-edge.exp:1.31 Sat Mar 29 16:44:14 2025 +++ src/usr.bin/make/unit-tests/varmod-edge.exp Sat Mar 29 19:08:52 2025 @@ -8,10 +8,10 @@ make: "varmod-edge.mk" line 88: Unfinish make: "varmod-edge.mk" line 178: Unfinished modifier after "a\=b}", expecting "=" while evaluating variable "INP" with value "file.c file..." while evaluating variable "MOD" with value "${INP:a\=b}" -make: "varmod-edge.mk" line 193: Unknown modifier ":" +make: "varmod-edge.mk" line 193: Unknown modifier "::" while evaluating variable "INP" with value "value" while evaluating variable "MOD" with value "${INP::::}" -make: "varmod-edge.mk" line 199: Unknown modifier "Z" +make: "varmod-edge.mk" line 199: Unknown modifier ":Z" while evaluating "${:Z}" with value "" make: "varmod-edge.mk" line 212: Unfinished modifier after "}", expecting "," while evaluating "${:S,}" with value "" Index: src/usr.bin/make/unit-tests/varmod-edge.mk diff -u src/usr.bin/make/unit-tests/varmod-edge.mk:1.35 src/usr.bin/make/unit-tests/varmod-edge.mk:1.36 --- src/usr.bin/make/unit-tests/varmod-edge.mk:1.35 Sat Mar 29 16:44:14 2025 +++ src/usr.bin/make/unit-tests/varmod-edge.mk Sat Mar 29 19:08:52 2025 @@ -1,4 +1,4 @@ -# $NetBSD: varmod-edge.mk,v 1.35 2025/03/29 16:44:14 rillig Exp $ +# $NetBSD: varmod-edge.mk,v 1.36 2025/03/29 19:08:52 rillig Exp $ # # Tests for edge cases in variable modifiers. # @@ -189,13 +189,13 @@ EXP= value INP= value MOD= ${INP::::} EXP= :} -# expect+1: Unknown modifier ":" +# expect+1: Unknown modifier "::" .if ${MOD} != ${EXP} . warning expected "${EXP}", got "${MOD}" .endif # Even in expressions based on an unnamed variable, there may be errors. -# expect+1: Unknown modifier "Z" +# expect+1: Unknown modifier ":Z" .if ${:Z} . error .else Index: src/usr.bin/make/unit-tests/varmod-ifelse.mk diff -u src/usr.bin/make/unit-tests/varmod-ifelse.mk:1.35 src/usr.bin/make/unit-tests/varmod-ifelse.mk:1.36 --- src/usr.bin/make/unit-tests/varmod-ifelse.mk:1.35 Sat Jan 11 20:54:45 2025 +++ src/usr.bin/make/unit-tests/varmod-ifelse.mk Sat Mar 29 19:08:52 2025 @@ -1,4 +1,4 @@ -# $NetBSD: varmod-ifelse.mk,v 1.35 2025/01/11 20:54:45 rillig Exp $ +# $NetBSD: varmod-ifelse.mk,v 1.36 2025/03/29 19:08:52 rillig Exp $ # # Tests for the ${cond:?then:else} variable modifier, which evaluates either # the then-expression or the else-expression, depending on the condition. @@ -309,7 +309,7 @@ BOTH= <${YES}> <${NO}> .endif -# expect+2: Unknown modifier "X-then" -# expect+1: Unknown modifier "X-else" +# expect+2: Unknown modifier ":X-then" +# expect+1: Unknown modifier ":X-else" .if ${1:?${:X-then}:${:X-else}} .endif Index: src/usr.bin/make/unit-tests/varmod-indirect.exp diff -u src/usr.bin/make/unit-tests/varmod-indirect.exp:1.33 src/usr.bin/make/unit-tests/varmod-indirect.exp:1.34 --- src/usr.bin/make/unit-tests/varmod-indirect.exp:1.33 Sat Mar 29 16:44:14 2025 +++ src/usr.bin/make/unit-tests/varmod-indirect.exp Sat Mar 29 19:08:52 2025 @@ -1,6 +1,6 @@ -make: "varmod-indirect.mk" line 19: Unknown modifier "${" +make: "varmod-indirect.mk" line 19: Unknown modifier ":${" while evaluating variable "value" with value "value" -make: "varmod-indirect.mk" line 52: Unknown modifier "${" +make: "varmod-indirect.mk" line 52: Unknown modifier ":${" while evaluating variable "value" with value "value" make: "varmod-indirect.mk" line 140: before make: "varmod-indirect.mk" line 140: after @@ -8,7 +8,7 @@ make: "varmod-indirect.mk" line 148: bef make: "varmod-indirect.mk" line 148: after make: "varmod-indirect.mk" line 156: before make: "varmod-indirect.mk" line 156: after -make: "varmod-indirect.mk" line 161: Unknown modifier "Z" +make: "varmod-indirect.mk" line 161: Unknown modifier ":Z" while evaluating indirect modifiers "Z" while evaluating variable "UNDEF" with value "" make: "varmod-indirect.mk" line 164: before @@ -34,7 +34,7 @@ Parsing varmod-indirect.mk:192: _:= befo Var_Parse: ${UNDEF:${:UZ}} after (eval-keep-dollar-and-undefined) Indirect modifier "Z" from "${:UZ}" Evaluating modifier ${UNDEF:Z} on value "" (eval-keep-dollar-and-undefined, undefined) -make: "varmod-indirect.mk" line 192: Unknown modifier "Z" +make: "varmod-indirect.mk" line 192: Unknown modifier ":Z" while evaluating indirect modifiers "Z" while evaluating variable "UNDEF" with value "" Global: _ = before ${UNDEF:Z} after Index: src/usr.bin/make/unit-tests/varmod-match.mk diff -u src/usr.bin/make/unit-tests/varmod-match.mk:1.29 src/usr.bin/make/unit-tests/varmod-match.mk:1.30 --- src/usr.bin/make/unit-tests/varmod-match.mk:1.29 Sat Jan 11 20:54:46 2025 +++ src/usr.bin/make/unit-tests/varmod-match.mk Sat Mar 29 19:08:52 2025 @@ -1,4 +1,4 @@ -# $NetBSD: varmod-match.mk,v 1.29 2025/01/11 20:54:46 rillig Exp $ +# $NetBSD: varmod-match.mk,v 1.30 2025/03/29 19:08:52 rillig Exp $ # # Tests for the ':M' modifier, which keeps only those words that match the # given pattern. @@ -359,7 +359,7 @@ WORDS= [x- x x- y yyyyy # [:] matches never since the ':' starts the next modifier # expect+2: Unfinished character list in pattern '[' of modifier ':M' -# expect+1: Unknown modifier "]" +# expect+1: Unknown modifier ":]" .if ${ ${:U\:} ${:U\:\:} :L:M[:]} != ":" . error .else Index: src/usr.bin/make/unit-tests/varmod-range.exp diff -u src/usr.bin/make/unit-tests/varmod-range.exp:1.18 src/usr.bin/make/unit-tests/varmod-range.exp:1.19 --- src/usr.bin/make/unit-tests/varmod-range.exp:1.18 Sat Jan 11 20:54:46 2025 +++ src/usr.bin/make/unit-tests/varmod-range.exp Sat Mar 29 19:08:52 2025 @@ -1,13 +1,13 @@ make: "varmod-range.mk" line 43: Malformed conditional '${:range=5} != ""' make: "varmod-range.mk" line 66: Invalid number "x}Rest" != "Rest"" for ':range' modifier while evaluating "${:U:range=x}Rest" != "Rest"" with value "" -make: "varmod-range.mk" line 76: Unknown modifier "x0" +make: "varmod-range.mk" line 76: Unknown modifier ":x0" while evaluating "${:U:range=0x0}Rest" != "Rest"" with value "1" -make: "varmod-range.mk" line 93: Unknown modifier "rang" +make: "varmod-range.mk" line 93: Unknown modifier ":rang" while evaluating variable "a b c" with value "a b c" -make: "varmod-range.mk" line 101: Unknown modifier "rango" +make: "varmod-range.mk" line 101: Unknown modifier ":rango" while evaluating variable "a b c" with value "a b c" -make: "varmod-range.mk" line 109: Unknown modifier "ranger" +make: "varmod-range.mk" line 109: Unknown modifier ":ranger" while evaluating variable "a b c" with value "a b c" make: Fatal errors encountered -- cannot continue make: stopped making "all" in unit-tests Index: src/usr.bin/make/unit-tests/varmod-subst.exp diff -u src/usr.bin/make/unit-tests/varmod-subst.exp:1.10 src/usr.bin/make/unit-tests/varmod-subst.exp:1.11 --- src/usr.bin/make/unit-tests/varmod-subst.exp:1.10 Sat Mar 29 10:39:49 2025 +++ src/usr.bin/make/unit-tests/varmod-subst.exp Sat Mar 29 19:08:53 2025 @@ -45,7 +45,7 @@ mod-subst-delimiter: 1 two 3 tilde mod-subst-chain: A B c. -make: Unknown modifier "i" +make: Unknown modifier ":i" while evaluating "${:Uvalue:S,a,x,i}." with value "vxlue" in command "@echo ${:Uvalue:S,a,x,i}." in target "mod-subst-chain" Index: src/usr.bin/make/unit-tests/varparse-errors.mk diff -u src/usr.bin/make/unit-tests/varparse-errors.mk:1.19 src/usr.bin/make/unit-tests/varparse-errors.mk:1.20 --- src/usr.bin/make/unit-tests/varparse-errors.mk:1.19 Thu Aug 29 20:20:37 2024 +++ src/usr.bin/make/unit-tests/varparse-errors.mk Sat Mar 29 19:08:53 2025 @@ -1,4 +1,4 @@ -# $NetBSD: varparse-errors.mk,v 1.19 2024/08/29 20:20:37 rillig Exp $ +# $NetBSD: varparse-errors.mk,v 1.20 2025/03/29 19:08:53 rillig Exp $ # Tests for parsing and evaluating all kinds of expressions. # @@ -34,7 +34,7 @@ ERR_EVAL= An evaluation error ${:Uvalue: # As of 2020-12-01, errors in the variable name are silently ignored. # Since var.c 1.754 from 2020-12-20, unknown modifiers at parse time result # in an error message and a non-zero exit status. -# expect+1: Unknown modifier "Z" +# expect+1: Unknown modifier ":Z" VAR.${:U:Z}= unknown modifier in the variable name .if ${VAR.} != "unknown modifier in the variable name" . error @@ -43,7 +43,7 @@ VAR.${:U:Z}= unknown modifier in the var # As of 2020-12-01, errors in the variable name are silently ignored. # Since var.c 1.754 from 2020-12-20, unknown modifiers at parse time result # in an error message and a non-zero exit status. -# expect+1: Unknown modifier "Z" +# expect+1: Unknown modifier ":Z" VAR.${:U:Z}post= unknown modifier with text in the variable name .if ${VAR.post} != "unknown modifier with text in the variable name" . error