Module Name: src Committed By: rillig Date: Sat Dec 19 12:24:46 UTC 2020
Modified Files: src/usr.bin/make: parse.c src/usr.bin/make/unit-tests: directive-for-lines.exp directive-for-lines.mk Log Message: make(1): fix line numbers in .for loops (since 2007-01-01) To generate a diff of this commit: cvs rdiff -u -r1.493 -r1.494 src/usr.bin/make/parse.c cvs rdiff -u -r1.1 -r1.2 src/usr.bin/make/unit-tests/directive-for-lines.exp \ src/usr.bin/make/unit-tests/directive-for-lines.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/parse.c diff -u src/usr.bin/make/parse.c:1.493 src/usr.bin/make/parse.c:1.494 --- src/usr.bin/make/parse.c:1.493 Sat Dec 19 10:57:17 2020 +++ src/usr.bin/make/parse.c Sat Dec 19 12:24:46 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: parse.c,v 1.493 2020/12/19 10:57:17 rillig Exp $ */ +/* $NetBSD: parse.c,v 1.494 2020/12/19 12:24:46 rillig Exp $ */ /* * Copyright (c) 1988, 1989, 1990, 1993 @@ -117,7 +117,7 @@ #include "pathnames.h" /* "@(#)parse.c 8.3 (Berkeley) 3/19/94" */ -MAKE_RCSID("$NetBSD: parse.c,v 1.493 2020/12/19 10:57:17 rillig Exp $"); +MAKE_RCSID("$NetBSD: parse.c,v 1.494 2020/12/19 12:24:46 rillig Exp $"); /* types and constants */ @@ -2814,8 +2814,8 @@ ParseGetLine(GetLineMode mode) if (line_end == line || firstComment == line) { if (res == PRLR_EOF) return NULL; - /* Parse another line */ - continue; + if (mode != PARSE_RAW) + continue; } /* We now have a line of data */ Index: src/usr.bin/make/unit-tests/directive-for-lines.exp diff -u src/usr.bin/make/unit-tests/directive-for-lines.exp:1.1 src/usr.bin/make/unit-tests/directive-for-lines.exp:1.2 --- src/usr.bin/make/unit-tests/directive-for-lines.exp:1.1 Sat Dec 19 12:14:59 2020 +++ src/usr.bin/make/unit-tests/directive-for-lines.exp Sat Dec 19 12:24:46 2020 @@ -1,9 +1,9 @@ -make: "directive-for-lines.mk" line 12: expect 18 -make: "directive-for-lines.mk" line 12: expect 18 -make: "directive-for-lines.mk" line 14: expect 24 -make: "directive-for-lines.mk" line 12: expect 18 -make: "directive-for-lines.mk" line 12: expect 18 -make: "directive-for-lines.mk" line 14: expect 24 +make: "directive-for-lines.mk" line 18: expect 18 +make: "directive-for-lines.mk" line 18: expect 18 +make: "directive-for-lines.mk" line 24: expect 24 +make: "directive-for-lines.mk" line 18: expect 18 +make: "directive-for-lines.mk" line 18: expect 18 +make: "directive-for-lines.mk" line 24: expect 24 make: no target to make. make: stopped in unit-tests Index: src/usr.bin/make/unit-tests/directive-for-lines.mk diff -u src/usr.bin/make/unit-tests/directive-for-lines.mk:1.1 src/usr.bin/make/unit-tests/directive-for-lines.mk:1.2 --- src/usr.bin/make/unit-tests/directive-for-lines.mk:1.1 Sat Dec 19 12:14:59 2020 +++ src/usr.bin/make/unit-tests/directive-for-lines.mk Sat Dec 19 12:24:46 2020 @@ -1,11 +1,11 @@ -# $NetBSD: directive-for-lines.mk,v 1.1 2020/12/19 12:14:59 rillig Exp $ +# $NetBSD: directive-for-lines.mk,v 1.2 2020/12/19 12:24:46 rillig Exp $ # # Tests for the line numbers that are reported in .for loops. # -# Since 2007-01-01 21:47:32 (git 4d3c468f96e1080e4d3cca8cc39067a73af14fbb), -# parse.c 1.127, the line numbers for the .info directives and error messages -# inside .for loops have been wrong since ParseGetLine skips empty lines, even -# when collecting the lines for the .for loop body. +# Between 2007-01-01 (git 4d3c468f96e1080e, parse.c 1.127) and 2020-12-19 +# (parse.c 1.494), the line numbers for the .info directives and error +# messages inside .for loops had been wrong since ParseGetLine skipped empty +# lines, even when collecting the lines for the .for loop body. .for outer in a b