Module Name:    src
Committed By:   rillig
Date:           Fri Jan  7 23:13:50 UTC 2022

Modified Files:
        src/usr.bin/make: for.c

Log Message:
make: clean up structure of For_Eval

Put related decisions on the same indentation level, remove unnecessary
negation, keep the code for the '.for' directive together.

No functional change.


To generate a diff of this commit:
cvs rdiff -u -r1.157 -r1.158 src/usr.bin/make/for.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/for.c
diff -u src/usr.bin/make/for.c:1.157 src/usr.bin/make/for.c:1.158
--- src/usr.bin/make/for.c:1.157	Fri Jan  7 20:15:10 2022
+++ src/usr.bin/make/for.c	Fri Jan  7 23:13:50 2022
@@ -1,4 +1,4 @@
-/*	$NetBSD: for.c,v 1.157 2022/01/07 20:15:10 rillig Exp $	*/
+/*	$NetBSD: for.c,v 1.158 2022/01/07 23:13:50 rillig Exp $	*/
 
 /*
  * Copyright (c) 1992, The Regents of the University of California.
@@ -58,7 +58,7 @@
 #include "make.h"
 
 /*	"@(#)for.c	8.1 (Berkeley) 6/6/93"	*/
-MAKE_RCSID("$NetBSD: for.c,v 1.157 2022/01/07 20:15:10 rillig Exp $");
+MAKE_RCSID("$NetBSD: for.c,v 1.158 2022/01/07 23:13:50 rillig Exp $");
 
 
 typedef struct ForLoop {
@@ -191,35 +191,30 @@ IsEndfor(const char *p)
 int
 For_Eval(const char *line)
 {
-	ForLoop *f;
 	const char *p;
+	ForLoop *f;
 
 	p = line + 1;		/* skip the '.' */
 	cpp_skip_whitespace(&p);
 
-	if (!IsFor(p)) {
-		if (IsEndfor(p)) {
-			Parse_Error(PARSE_FATAL, "for-less endfor");
+	if (IsFor(p)) {
+		p += 3;
+
+		f = ForLoop_New();
+		if (!ForLoop_ParseVarnames(f, &p)) {
+			ForLoop_Free(f);
 			return -1;
 		}
-		return 0;
-	}
-	p += 3;
-
-	f = ForLoop_New();
+		if (!ForLoop_ParseItems(f, p))
+			f->items.len = 0;	/* don't iterate */
 
-	if (!ForLoop_ParseVarnames(f, &p)) {
-		ForLoop_Free(f);
+		accumFor = f;
+		return 1;
+	} else if (IsEndfor(p)) {
+		Parse_Error(PARSE_FATAL, "for-less endfor");
 		return -1;
-	}
-
-	if (!ForLoop_ParseItems(f, p)) {
-		/* Continue parsing the .for loop, but don't iterate. */
-		f->items.len = 0;
-	}
-
-	accumFor = f;
-	return 1;
+	} else
+		return 0;
 }
 
 /*

Reply via email to