Module Name:    src
Committed By:   rillig
Date:           Fri Jun 10 22:35:05 UTC 2022

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

Log Message:
make: split IncludeFile into separate functions

No functional change.


To generate a diff of this commit:
cvs rdiff -u -r1.673 -r1.674 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.673 src/usr.bin/make/parse.c:1.674
--- src/usr.bin/make/parse.c:1.673	Fri Jun 10 22:23:19 2022
+++ src/usr.bin/make/parse.c	Fri Jun 10 22:35:05 2022
@@ -1,4 +1,4 @@
-/*	$NetBSD: parse.c,v 1.673 2022/06/10 22:23:19 rillig Exp $	*/
+/*	$NetBSD: parse.c,v 1.674 2022/06/10 22:35:05 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.673 2022/06/10 22:23:19 rillig Exp $");
+MAKE_RCSID("$NetBSD: parse.c,v 1.674 2022/06/10 22:35:05 rillig Exp $");
 
 /*
  * A file being read.
@@ -1147,6 +1147,25 @@ FindInDirOfIncludingFile(const char *fil
 	return fullname;
 }
 
+static char *
+FindInQuotPath(const char *file)
+{
+	const char *suff;
+	SearchPath *suffPath;
+	char *fullname;
+
+	fullname = FindInDirOfIncludingFile(file);
+	if (fullname == NULL &&
+	    (suff = strrchr(file, '.')) != NULL &&
+	    (suffPath = Suff_GetPath(suff)) != NULL)
+		fullname = Dir_FindFile(file, suffPath);
+	if (fullname == NULL)
+		fullname = Dir_FindFile(file, parseIncPath);
+	if (fullname == NULL)
+		fullname = Dir_FindFile(file, &dirSearchPath);
+	return fullname;
+}
+
 /*
  * Handle one of the .[-ds]include directives by remembering the current file
  * and pushing the included file on the stack.  After the included file has
@@ -1166,27 +1185,10 @@ IncludeFile(const char *file, bool isSys
 
 	fullname = file[0] == '/' ? bmake_strdup(file) : NULL;
 
-	if (fullname == NULL && !isSystem) {
-		fullname = FindInDirOfIncludingFile(file);
-		if (fullname == NULL) {
-			const char *suff;
-			SearchPath *suffPath;
-
-			if ((suff = strrchr(file, '.')) != NULL &&
-			    (suffPath = Suff_GetPath(suff)) != NULL)
-				fullname = Dir_FindFile(file, suffPath);
-		}
-		if (fullname == NULL)
-			fullname = Dir_FindFile(file, parseIncPath);
-		if (fullname == NULL)
-			fullname = Dir_FindFile(file, &dirSearchPath);
-	}
+	if (fullname == NULL && !isSystem)
+		fullname = FindInQuotPath(file);
 
-	/* Looking for a system file or file still not found */
 	if (fullname == NULL) {
-		/*
-		 * Look for it on the system path
-		 */
 		SearchPath *path = Lst_IsEmpty(&sysIncPath->dirs)
 		    ? defSysIncPath : sysIncPath;
 		fullname = Dir_FindFile(file, path);
@@ -1198,9 +1200,7 @@ IncludeFile(const char *file, bool isSys
 		return;
 	}
 
-	/* Actually open the file... */
-	fd = open(fullname, O_RDONLY);
-	if (fd == -1) {
+	if ((fd = open(fullname, O_RDONLY)) == -1) {
 		if (!silent)
 			Parse_Error(PARSE_FATAL, "Cannot open %s", fullname);
 		free(fullname);

Reply via email to