Module Name: src Committed By: rillig Date: Sat Mar 29 16:44:14 UTC 2025
Modified Files: src/usr.bin/make: var.c src/usr.bin/make/unit-tests: moderrs.exp moderrs.mk vardebug.exp vardebug.mk varmod-edge.exp varmod-edge.mk varmod-indirect.exp varmod-indirect.mk Log Message: make: stop parsing after seeing an unknown modifier in an expression Previously, after an expression such as ${VAR:Z::::}, make detected the unknown modifier ":Z" and then continued parsing, which produced unnecessary follow-up error messages. It was also necessary to distinguish the error cases when logging the result of an applied modifier in -dv mode. Unify the error handling cases of a syntax error, an evaluation error and an unknown modifier, to avoid the unnecessary follow-up error messages. The test in varmod-edge.mk now produces ":}" from the erroneous expression, which may be misleading and thus will be looked at in a follow-up commit. The general idea of this patch was reviewed by sjg, I made a few nonsubstantial changes after the review. To generate a diff of this commit: cvs rdiff -u -r1.1149 -r1.1150 src/usr.bin/make/var.c cvs rdiff -u -r1.49 -r1.50 src/usr.bin/make/unit-tests/moderrs.exp cvs rdiff -u -r1.43 -r1.44 src/usr.bin/make/unit-tests/moderrs.mk cvs rdiff -u -r1.40 -r1.41 src/usr.bin/make/unit-tests/vardebug.exp cvs rdiff -u -r1.16 -r1.17 src/usr.bin/make/unit-tests/vardebug.mk cvs rdiff -u -r1.30 -r1.31 src/usr.bin/make/unit-tests/varmod-edge.exp cvs rdiff -u -r1.34 -r1.35 src/usr.bin/make/unit-tests/varmod-edge.mk cvs rdiff -u -r1.32 -r1.33 src/usr.bin/make/unit-tests/varmod-indirect.exp cvs rdiff -u -r1.21 -r1.22 src/usr.bin/make/unit-tests/varmod-indirect.mk Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.