Module Name: src Committed By: rillig Date: Sat Jan 8 22:42:28 UTC 2022
Modified Files: src/usr.bin/make: parse.c Log Message: make: reduce confusing code in ParseForLoop The previous version of the code gave the wrong impression that For_Eval would modify CurFile. That happens only later, in For_Run. No functional change. To generate a diff of this commit: cvs rdiff -u -r1.641 -r1.642 src/usr.bin/make/parse.c 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.641 src/usr.bin/make/parse.c:1.642 --- src/usr.bin/make/parse.c:1.641 Sat Jan 8 22:24:20 2022 +++ src/usr.bin/make/parse.c Sat Jan 8 22:42:27 2022 @@ -1,4 +1,4 @@ -/* $NetBSD: parse.c,v 1.641 2022/01/08 22:24:20 rillig Exp $ */ +/* $NetBSD: parse.c,v 1.642 2022/01/08 22:42:27 rillig Exp $ */ /* * Copyright (c) 1988, 1989, 1990, 1993 @@ -106,7 +106,7 @@ #include "pathnames.h" /* "@(#)parse.c 8.3 (Berkeley) 3/19/94" */ -MAKE_RCSID("$NetBSD: parse.c,v 1.641 2022/01/08 22:24:20 rillig Exp $"); +MAKE_RCSID("$NetBSD: parse.c,v 1.642 2022/01/08 22:42:27 rillig Exp $"); /* * A file being read. @@ -336,9 +336,6 @@ PrintStackTrace(void) const IncludedFile *entries; size_t i, n; - if (!DEBUG(PARSE)) - return; - entries = GetInclude(0); n = includes.len; if (n == 0) @@ -463,7 +460,8 @@ ParseVErrorInternal(FILE *f, const char parseErrors++; } - PrintStackTrace(); + if (DEBUG(PARSE)) + PrintStackTrace(); } static void @@ -2508,16 +2506,17 @@ ParseForLoop(const char *line) int bodyReadLines; int forLevel; - forHeadLineno = CurFile()->lineno; rval = For_Eval(line); if (rval == 0) return false; /* Not a .for line */ if (rval < 0) return true; /* Syntax error - error printed, ignore line */ + forHeadLineno = CurFile()->lineno; + bodyReadLines = CurFile()->readLines; + /* Accumulate the loop body until the matching '.endfor'. */ forLevel = 1; - bodyReadLines = CurFile()->readLines; do { line = ReadLowLevelLine(LK_FOR_BODY); if (line == NULL) {